From 2d2736fbd56d881b9963dbdeffd1120310081ec9 Mon Sep 17 00:00:00 2001 From: Imamah-Zafar <88320460+Imamah-Zafar@users.noreply.github.com> Date: Mon, 6 Mar 2023 13:29:30 +0500 Subject: [PATCH 01/26] update amount view --- .../confirmStxTransactionComponent/index.tsx | 10 +++------- src/app/components/transactionSetting/index.tsx | 2 +- src/app/screens/confirmStxTransaction/index.tsx | 16 +++++++++++----- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/app/components/confirmStxTransactionComponent/index.tsx b/src/app/components/confirmStxTransactionComponent/index.tsx index fa7e24867..785457561 100644 --- a/src/app/components/confirmStxTransactionComponent/index.tsx +++ b/src/app/components/confirmStxTransactionComponent/index.tsx @@ -15,6 +15,7 @@ import { } from '@secretkeylabs/xverse-core'; import useWalletSelector from '@hooks/useWalletSelector'; import useNetworkSelector from '@hooks/useNetwork'; +import TransactionDetailComponent from '@components/transactionDetailComponent'; const Container = styled.div` display: flex; @@ -97,6 +98,7 @@ function ConfirmStxTransationComponent({ const { selectedAccount, seedPhrase, + network, } = useWalletSelector(); const [openTransactionSettingModal, setOpenTransactionSettingModal] = useState(false); const [buttonLoading, setButtonLoading] = useState(loading); @@ -161,13 +163,7 @@ function ConfirmStxTransationComponent({ <> {children} - - - - + {!isSponsored && ( + )} {isSponsored && {t('SPONSORED_TX_INFO')}} ({ + display: 'flex', + flexDirection: 'column', + background: props.theme.colors.background.elevation1, + borderRadius: 12, + padding: '12px 16px', + justifyContent: 'center', + marginBottom: 12, +})); + +const TitleText = styled.h1((props) => ({ + ...props.theme.body_medium_m, + color: props.theme.colors.white[200], +})); + +const DescriptionText = styled.h1((props) => ({ + ...props.theme.body_medium_m, + marginTop: props.theme.spacing(6), + marginBottom: props.theme.spacing(4), + color: props.theme.colors.white[0], +})); + +const RowContainer = styled.div({ + display: 'flex', + flexDirection: 'row', + width: '100%', + alignItems: 'center', +}); + +interface Props { + memo: string; +} + +function TransferMemoView({ + memo, +}: Props) { + const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); + + return ( + + + {t('MEMO')} + + { memo} + + ); +} + +export default TransferMemoView; diff --git a/src/app/components/confirmBtcTransactionComponent/btcRecipientComponent.tsx b/src/app/components/recipientComponent/index.tsx similarity index 97% rename from src/app/components/confirmBtcTransactionComponent/btcRecipientComponent.tsx rename to src/app/components/recipientComponent/index.tsx index c381d6876..d3d6cd230 100644 --- a/src/app/components/confirmBtcTransactionComponent/btcRecipientComponent.tsx +++ b/src/app/components/recipientComponent/index.tsx @@ -74,7 +74,7 @@ interface Props { title: string; } -function BtcRecipientComponent({ +function RecipientComponent({ recipientIndex, address, value, totalRecipient, subValue, icon, title, } : Props) { const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); @@ -117,4 +117,4 @@ function BtcRecipientComponent({ ); } -export default BtcRecipientComponent; +export default RecipientComponent; diff --git a/src/app/components/transferFeeView/index.tsx b/src/app/components/transferFeeView/index.tsx index 1a96130bd..7a307f3d4 100644 --- a/src/app/components/transferFeeView/index.tsx +++ b/src/app/components/transferFeeView/index.tsx @@ -10,40 +10,47 @@ import styled from 'styled-components'; const RowContainer = styled.div((props) => ({ display: 'flex', flexDirection: 'row', - marginTop: props.theme.spacing(8), + background: props.theme.colors.background.elevation1, + borderRadius: 12, + padding: '12px 16px', + justifyContent: 'center', + marginBottom: 12, })); const FeeText = styled.h1((props) => ({ - ...props.theme.body_m, + ...props.theme.body_medium_m, + color: props.theme.colors.white[0], })); const FeeTitleContainer = styled.div({ display: 'flex', - flex: 1, + flexDirection: 'column', }); const FeeContainer = styled.div({ display: 'flex', flexDirection: 'column', + flex: 1, alignItems: 'flex-end', }); const TitleText = styled.h1((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white['400'], - textTransform: 'uppercase', + ...props.theme.body_medium_m, + color: props.theme.colors.white[200], })); const FiatAmountText = styled.h1((props) => ({ - ...props.theme.body_xs, - color: props.theme.colors.white['400'], + ...props.theme.body_m, + fontSize: 12, + color: props.theme.colors.white[400], })); interface Props { fee: BigNumber; currency: string; + title? : string; } -function TransferFeeView({ fee, currency }: Props) { +function TransferFeeView({ fee, currency, title}: Props) { const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); const { btcFiatRate, fiatCurrency } = useSelector((state: StoreState) => state.walletState); @@ -69,7 +76,7 @@ function TransferFeeView({ fee, currency }: Props) { return ( - {t('FEES')} + {title ?? t('FEES')} {`${fee.toString()} ${currency}`} diff --git a/src/app/screens/confirmStxTransaction/index.tsx b/src/app/screens/confirmStxTransaction/index.tsx index 21ffc6eaf..1abbd139a 100644 --- a/src/app/screens/confirmStxTransaction/index.tsx +++ b/src/app/screens/confirmStxTransaction/index.tsx @@ -8,13 +8,10 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { getStxFiatEquivalent, microstacksToStx } from '@secretkeylabs/xverse-core/currency'; import { StacksTransaction, TokenTransferPayload } from '@secretkeylabs/xverse-core/types'; import { addressToString, broadcastSignedTransaction } from '@secretkeylabs/xverse-core/transactions'; -import Seperator from '@components/seperator'; import { StoreState } from '@stores/index'; import BottomBar from '@components/tabBar'; import { fetchStxWalletDataRequestAction } from '@stores/wallet/actions/actionCreators'; import IconStacks from '@assets/img/dashboard/stack_icon.svg'; -import RecipientAddressView from '@components/recipinetAddressView'; -import TransferAmountView from '@components/transferAmountView'; import TopRow from '@components/topRow'; import AccountHeaderComponent from '@components/accountHeader'; import finalizeTxSignature from '@components/transactionsRequests/utils'; @@ -22,7 +19,8 @@ import useOnOriginTabClose from '@hooks/useOnTabClosed'; import InfoContainer from '@components/infoContainer'; import useNetworkSelector from '@hooks/useNetwork'; import TransactionDetailComponent from '@components/transactionDetailComponent'; -import BtcRecipientComponent from '@components/confirmBtcTransactionComponent/btcRecipientComponent'; +import RecipientComponent from '@components/recipientComponent'; +import TransferMemoView from '@components/confirmStxTransactionComponent/transferMemoView'; import ConfirmStxTransationComponent from '../../components/confirmStxTransactionComponent'; const Container = styled.div((props) => ({ @@ -56,6 +54,7 @@ function ConfirmStxTransaction() { const [total, setTotal] = useState(new BigNumber(0)); const [fiatTotal, setFiatTotal] = useState(new BigNumber(0)); const [hasTabClosed, setHasTabClosed] = useState(false); + const [expandTransferMemoView, setExpandTransferMemoView] = useState(false); const [recipient, setRecipient] = useState(''); const [txRaw, setTxRaw] = useState(''); const [memo, setMemo] = useState(''); @@ -145,29 +144,16 @@ function ConfirmStxTransaction() { } }); - const networkInfoSection = ( - - {t('CONFIRM_TRANSACTION.NETWORK')} - {network.type} - - ); - - const memoInfoSection = !!memo && ( - <> - - {t('CONFIRM_TRANSACTION.MEMO')} - {memo} - - - - ); - const getAmount = () => { const txPayload = unsignedTx?.payload as TokenTransferPayload; const amountToTransfer = new BigNumber(txPayload?.amount?.toString(10)); return microstacksToStx(amountToTransfer); }; + const expandTransferMemoSection = () => { + setExpandTransferMemoView(!expandTransferMemoView); + }; + const handleOnConfirmClick = (txs: StacksTransaction[]) => { setTxRaw(txs[0].serialize().toString('hex')); mutate({ signedTx: txs[0] }); @@ -187,6 +173,7 @@ function ConfirmStxTransaction() { }); } }; + return ( <> {isBrowserTx ? @@ -198,13 +185,15 @@ function ConfirmStxTransaction() { onCancelClick={handleOnCancelClick} isSponsored={sponsored} > - + {hasTabClosed && ( diff --git a/src/app/utils/tokens.ts b/src/app/utils/tokens.ts index 7e1c40093..d2f74a4d5 100644 --- a/src/app/utils/tokens.ts +++ b/src/app/utils/tokens.ts @@ -12,8 +12,8 @@ export function getFtTicker(ft: FungibleToken) { } export function getFtBalance(ft: FungibleToken) { - if (ft.decimals) { + if (ft?.decimals) { return ftDecimals(ft.balance, ft.decimals); } - return ft.balance; + return ft?.balance; } From e8bb0f15ac5764fd0633450a804e64669dc7e3ae Mon Sep 17 00:00:00 2001 From: Imamah-Zafar <88320460+Imamah-Zafar@users.noreply.github.com> Date: Tue, 7 Mar 2023 22:46:01 +0500 Subject: [PATCH 03/26] fix copy address button --- src/app/components/copyButton/index.tsx | 27 ++++++++++++++++--- src/app/components/topRow/index.tsx | 13 +++++---- .../screens/confirmStxTransaction/index.tsx | 2 +- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/app/components/copyButton/index.tsx b/src/app/components/copyButton/index.tsx index 3a4c2fef9..52679e6e5 100644 --- a/src/app/components/copyButton/index.tsx +++ b/src/app/components/copyButton/index.tsx @@ -1,7 +1,7 @@ import styled from 'styled-components'; import Copy from '@assets/img/nftDashboard/Copy.svg'; import Tick from '@assets/img/tick.svg'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { Tooltip } from 'react-tooltip'; import { useTranslation } from 'react-i18next'; @@ -10,9 +10,20 @@ const Button = styled.button((props) => ({ justifyContent: 'center', alignItems: 'center', background: 'transparent', - marginLeft: props.theme.spacing(4), + marginLeft: props.theme.spacing(3), + padding: 3, + ':hover': { + background: props.theme.colors.white[900], + borderRadius: 24, + }, })); +const Img = styled.img({ + width: 20, + height: 20, + +}); + const StyledToolTip = styled(Tooltip)` background-color: #ffffff; color: #12151e; @@ -31,10 +42,19 @@ function CopyButton({ text }: Props) { navigator.clipboard.writeText(text); setIsCopied(true); }; + + useEffect(() => { + if (isCopied) { + setTimeout(() => { + setIsCopied(false); + }, 5000); + } + }, [isCopied]); + return ( <> - ); } diff --git a/src/app/components/topRow/index.tsx b/src/app/components/topRow/index.tsx index 0a3f10726..24c0bd837 100644 --- a/src/app/components/topRow/index.tsx +++ b/src/app/components/topRow/index.tsx @@ -36,7 +36,6 @@ const AnimatedBackButton = styled(BackButton)` } `; - interface Props { title: string; onClick: () => void; @@ -44,12 +43,12 @@ interface Props { function TopRow({ title, onClick }: Props) { return ( - - - back button - - {title} - + + + back button + + {title} + ); } diff --git a/src/app/screens/confirmStxTransaction/index.tsx b/src/app/screens/confirmStxTransaction/index.tsx index 1abbd139a..5e69d9d53 100644 --- a/src/app/screens/confirmStxTransaction/index.tsx +++ b/src/app/screens/confirmStxTransaction/index.tsx @@ -193,7 +193,7 @@ function ConfirmStxTransaction() { title={t('CONFIRM_TRANSACTION.AMOUNT')} /> - + {memo && } {hasTabClosed && ( From 2ed9b7585dc9b59854bc07476ff646b3a47de731 Mon Sep 17 00:00:00 2001 From: Imamah-Zafar <88320460+Imamah-Zafar@users.noreply.github.com> Date: Wed, 8 Mar 2023 13:23:08 +0500 Subject: [PATCH 04/26] update nft screens --- .../confirmBtcTransactionComponent/index.tsx | 12 +-- .../confirmStxTransactionComponent/index.tsx | 35 ++++---- .../transferMemoView/index.tsx | 3 +- .../components/recipientComponent/index.tsx | 79 +++++++++++++++---- src/app/components/tokenImage/index.tsx | 37 ++++++--- src/app/components/transferFeeView/index.tsx | 18 +++-- .../screens/confirmFtTransaction/index.tsx | 49 +++--------- .../screens/confirmNftTransaction/index.tsx | 34 ++++---- .../screens/confirmStxTransaction/index.tsx | 28 +------ 9 files changed, 152 insertions(+), 143 deletions(-) diff --git a/src/app/components/confirmBtcTransactionComponent/index.tsx b/src/app/components/confirmBtcTransactionComponent/index.tsx index 48039cdf7..7c45f47ff 100644 --- a/src/app/components/confirmBtcTransactionComponent/index.tsx +++ b/src/app/components/confirmBtcTransactionComponent/index.tsx @@ -4,12 +4,10 @@ import styled from 'styled-components'; import { ReactNode, useEffect, useState } from 'react'; import BigNumber from 'bignumber.js'; import ActionButton from '@components/button'; -import OutputIcon from '@assets/img/transactions/output.svg'; import AssetIcon from '@assets/img/transactions/Assets.svg'; import SettingIcon from '@assets/img/dashboard/faders_horizontal.svg'; import TransactionSettingAlert from '@components/transactionSetting'; import { useSelector } from 'react-redux'; -import IconBitcoin from '@assets/img/dashboard/bitcoin_icon.svg'; import { StoreState } from '@stores/index'; import { signBtcTransaction } from '@secretkeylabs/xverse-core/transactions'; import { useMutation } from '@tanstack/react-query'; @@ -21,16 +19,15 @@ import { import { BtcUtxoDataResponse, ErrorCodes, - getBtcFiatEquivalent, ResponseError, satsToBtc, } from '@secretkeylabs/xverse-core'; import TransferDetailView from '@components/transferDetailView'; +import TransferFeeView from '@components/transferFeeView'; import TransactionDetailComponent from '../transactionDetailComponent'; import TransferAmountComponent from '../transferAmountComponent'; import InputOutputComponent from './inputOutputComponent'; import RecipientComponent from '../recipientComponent'; -import TransferFeeView from '@components/transferFeeView'; const OuterContainer = styled.div` display: flex; @@ -266,6 +263,7 @@ function ConfirmBtcTransactionComponent({ address={recipients[0]?.address} value={assetDetail!} icon={AssetIcon} + currencyType="Ordinal" title={t('CONFIRM_TRANSACTION.ASSET')} /> ) : ( @@ -275,12 +273,8 @@ function ConfirmBtcTransactionComponent({ address={recipient?.address} value={satsToBtc(recipient?.amountSats).toString()} totalRecipient={recipients?.length} - icon={IconBitcoin} + currencyType="BTC" title={t('CONFIRM_TRANSACTION.AMOUNT')} - subValue={getBtcFiatEquivalent( - recipient?.amountSats, - btcFiatRate, - )} /> )) )} diff --git a/src/app/components/confirmStxTransactionComponent/index.tsx b/src/app/components/confirmStxTransactionComponent/index.tsx index 8e0d9af9c..6c513c8d7 100644 --- a/src/app/components/confirmStxTransactionComponent/index.tsx +++ b/src/app/components/confirmStxTransactionComponent/index.tsx @@ -73,15 +73,11 @@ const SponsoredInfoText = styled.h1((props) => ({ color: props.theme.colors.white['400'], })); -interface ReviewTransactionTitleProps { - isAsset: boolean; -} - -const ReviewTransactionText = styled.h1((props) => ({ +const ReviewTransactionText = styled.h1((props) => ({ ...props.theme.headline_s, color: props.theme.colors.white[0], marginBottom: props.theme.spacing(16), - textAlign: props.isAsset ? 'center' : 'left', + textAlign: 'left', })); interface Props { @@ -91,6 +87,7 @@ interface Props { onConfirmClick: (transactions: StacksTransaction[]) => void; children: ReactNode; isSponsored?: boolean; + isAsset?: boolean; } function ConfirmStxTransationComponent({ @@ -98,6 +95,7 @@ function ConfirmStxTransationComponent({ loading, isSponsored, children, + isAsset, onConfirmClick, onCancelClick, }: Props) { @@ -111,15 +109,14 @@ function ConfirmStxTransationComponent({ setButtonLoading(loading); }, [loading]); - const getFee = () => - isSponsored - ? new BigNumber(0) - : new BigNumber( - initialStxTransactions - .map((tx) => tx?.auth?.spendingCondition?.fee ?? BigInt(0)) - .reduce((prev, curr) => prev + curr, BigInt(0)) - .toString(10) - ); + const getFee = () => (isSponsored + ? new BigNumber(0) + : new BigNumber( + initialStxTransactions + .map((tx) => tx?.auth?.spendingCondition?.fee ?? BigInt(0)) + .reduce((prev, curr) => prev + curr, BigInt(0)) + .toString(10), + )); const getTxNonce = (): string => { const nonce = getNonce(initialStxTransactions[0]); @@ -141,7 +138,7 @@ function ConfirmStxTransationComponent({ initialStxTransactions[0], seedPhrase, selectedAccount?.id ?? 0, - selectedNetwork + selectedNetwork, ); signedTxs.push(signedContractCall); } else if (initialStxTransactions.length === 2) { @@ -149,7 +146,7 @@ function ConfirmStxTransationComponent({ initialStxTransactions, selectedAccount?.id ?? 0, selectedNetwork, - seedPhrase + seedPhrase, ); } onConfirmClick(signedTxs); @@ -167,13 +164,13 @@ function ConfirmStxTransationComponent({ return ( <> - {t('REVIEW_TRNSACTION')} + {!isAsset && {t('REVIEW_TRNSACTION')}} {children} {initialStxTransactions[0]?.payload?.amount && ( ({ const DescriptionText = styled.h1((props) => ({ ...props.theme.body_medium_m, - marginTop: props.theme.spacing(6), - marginBottom: props.theme.spacing(4), + marginTop: props.theme.spacing(2), color: props.theme.colors.white[0], })); diff --git a/src/app/components/recipientComponent/index.tsx b/src/app/components/recipientComponent/index.tsx index d3d6cd230..c525a98c3 100644 --- a/src/app/components/recipientComponent/index.tsx +++ b/src/app/components/recipientComponent/index.tsx @@ -1,12 +1,16 @@ import TransferDetailView from '@components/transferDetailView'; import OutputIcon from '@assets/img/transactions/output.svg'; import { currencySymbolMap } from '@secretkeylabs/xverse-core/types/currency'; -import { StoreState } from '@stores/index'; import BigNumber from 'bignumber.js'; import { useTranslation } from 'react-i18next'; import { NumericFormat } from 'react-number-format'; -import { useSelector } from 'react-redux'; import styled from 'styled-components'; +import { FungibleToken, getFiatEquivalent } from '@secretkeylabs/xverse-core'; +import TokenImage from '@components/tokenImage'; +import { CurrencyTypes } from '@utils/constants'; +import useWalletSelector from '@hooks/useWalletSelector'; +import { useEffect, useState } from 'react'; +import { getTicker } from '@utils/helper'; const Container = styled.div((props) => ({ display: 'flex', @@ -64,23 +68,48 @@ const ColumnContainer = styled.div({ alignItems: 'flex-end', }); +const TokenContainer = styled.div({ + marginRight: 10, +}); + interface Props { - recipientIndex?: number; address: string; value: string; - subValue?: BigNumber; - totalRecipient?: number; - icon: string; title: string; + currencyType: CurrencyTypes; + recipientIndex?: number; + totalRecipient?: number; + icon?: string; + fungibleToken?: FungibleToken; } function RecipientComponent({ - recipientIndex, address, value, totalRecipient, subValue, icon, title, + recipientIndex, address, value, totalRecipient, title, fungibleToken, icon, currencyType, } : Props) { const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); + const [fiatAmount, setFiatAmount] = useState('0'); const { - fiatCurrency, - } = useSelector((state: StoreState) => state.walletState); + stxBtcRate, btcFiatRate, fiatCurrency, + } = useWalletSelector(); + + useEffect(() => { + let amountInCurrency; + if (currencyType === 'FT') { + amountInCurrency = new BigNumber(value).multipliedBy(fungibleToken?.tokenFiatRate!); + if (amountInCurrency.isLessThan(0.01)) { + amountInCurrency = '0.01'; + } + } else { amountInCurrency = getFiatEquivalent(Number(value), currencyType, stxBtcRate, btcFiatRate, fungibleToken); } + setFiatAmount(amountInCurrency); + }, [value]); + + function getFtTicker() { + if (fungibleToken?.ticker) { + return fungibleToken?.ticker.toUpperCase(); + } if (fungibleToken?.name) { + return getTicker(fungibleToken.name).toUpperCase(); + } return ''; + } const getFiatAmountString = (fiatAmount: BigNumber) => { if (fiatAmount) { @@ -105,12 +134,34 @@ function RecipientComponent({ {recipientIndex && totalRecipient && {`${t('RECIPIENT')} ${recipientIndex}/${totalRecipient}`}} - + {icon ? + : ( + + + + )} {title} - - {value} - {subValue && {getFiatAmountString(subValue)}} - + { currencyType === 'NFT' || currencyType === 'Ordinal' ? ( + + {value} + + ) : ( + + {amount}} + /> + {getFiatAmountString(new BigNumber(fiatAmount))} + + )} diff --git a/src/app/components/tokenImage/index.tsx b/src/app/components/tokenImage/index.tsx index 1e6724d0a..a382adff8 100644 --- a/src/app/components/tokenImage/index.tsx +++ b/src/app/components/tokenImage/index.tsx @@ -12,34 +12,43 @@ interface TokenImageProps { token?: string; loading?: boolean; fungibleToken?: FungibleToken; + isSmallSize?: boolean; } -const TickerImage = styled.img({ - height: 44, - width: 44, -}); +interface ImageProps { + isSmallSize?: boolean; +} +interface TextProps { + isSmallSize?: boolean; +} + +const TickerImage = styled.img((props) => ({ + height: props.isSmallSize ? 32 : 44, + width: props.isSmallSize ? 32 : 44, + borderRadius: 30, +})); const LoaderImageContainer = styled.div({ flex: 0.5, }); -const TickerIconContainer = styled.div((props) => ({ +const TickerIconContainer = styled.div((props) => ({ display: 'flex', alignItems: 'center', justifyContent: 'center', - height: 44, - width: 44, + height: props.isSmallSize ? 32 : 44, + width: props.isSmallSize ? 32 : 44, marginRight: props.theme.spacing(3), borderRadius: props.theme.radius(2), backgroundColor: props.color, })); -const TickerIconText = styled.h1((props) => ({ +const TickerIconText = styled.h1((props) => ({ ...props.theme.body_bold_m, color: props.theme.colors.white['0'], textAlign: 'center', wordBreak: 'break-all', - fontSize: 13, + fontSize: props.isSmallSize ? 10 : 13, })); export default function TokenImage(props: TokenImageProps) { @@ -47,6 +56,7 @@ export default function TokenImage(props: TokenImageProps) { token, loading, fungibleToken, + isSmallSize, } = props; const getCoinIcon = useCallback(() => { @@ -60,7 +70,7 @@ export default function TokenImage(props: TokenImageProps) { if (fungibleToken) { if (!loading) { if (fungibleToken?.image) { - return ; + return ; } let ticker = fungibleToken?.ticker; if (!ticker && fungibleToken?.name) { @@ -69,8 +79,8 @@ export default function TokenImage(props: TokenImageProps) { const background = stc(ticker); ticker = ticker && ticker.substring(0, 4); return ( - - {ticker} + + {ticker} ); } @@ -80,7 +90,8 @@ export default function TokenImage(props: TokenImageProps) { ); } + return ( - + ); } diff --git a/src/app/components/transferFeeView/index.tsx b/src/app/components/transferFeeView/index.tsx index 7a307f3d4..777b6f222 100644 --- a/src/app/components/transferFeeView/index.tsx +++ b/src/app/components/transferFeeView/index.tsx @@ -1,4 +1,4 @@ -import { getBtcFiatEquivalent } from '@secretkeylabs/xverse-core/currency'; +import { getBtcFiatEquivalent, getFiatEquivalent } from '@secretkeylabs/xverse-core'; import { currencySymbolMap } from '@secretkeylabs/xverse-core/types/currency'; import { StoreState } from '@stores/index'; import BigNumber from 'bignumber.js'; @@ -48,12 +48,14 @@ const FiatAmountText = styled.h1((props) => ({ interface Props { fee: BigNumber; currency: string; - title? : string; + title?: string; } -function TransferFeeView({ fee, currency, title}: Props) { +function TransferFeeView({ fee, currency, title }: Props) { const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); - const { btcFiatRate, fiatCurrency } = useSelector((state: StoreState) => state.walletState); - + const { btcFiatRate, stxBtcRate, fiatCurrency } = useSelector( + (state: StoreState) => state.walletState, + ); + const fiatRate = getFiatEquivalent(Number(fee), currency, stxBtcRate, btcFiatRate); const getFiatAmountString = (fiatAmount: BigNumber) => { if (fiatAmount) { if (fiatAmount.isLessThan(0.01)) { @@ -81,7 +83,11 @@ function TransferFeeView({ fee, currency, title}: Props) { {`${fee.toString()} ${currency}`} - {getFiatAmountString(getBtcFiatEquivalent(new BigNumber(fee), btcFiatRate))} + {getFiatAmountString( + currency === 'SATS' + ? getBtcFiatEquivalent(new BigNumber(fee), btcFiatRate) + : new BigNumber(fiatRate!) + )} diff --git a/src/app/screens/confirmFtTransaction/index.tsx b/src/app/screens/confirmFtTransaction/index.tsx index 57275a0ea..800f5e2a0 100644 --- a/src/app/screens/confirmFtTransaction/index.tsx +++ b/src/app/screens/confirmFtTransaction/index.tsx @@ -1,6 +1,4 @@ import { useTranslation } from 'react-i18next'; -import styled from 'styled-components'; - import { useMutation } from '@tanstack/react-query'; import { useEffect } from 'react'; import { useDispatch, useSelector } from 'react-redux'; @@ -10,32 +8,12 @@ import { broadcastSignedTransaction } from '@secretkeylabs/xverse-core/transacti import { StoreState } from '@stores/index'; import BottomBar from '@components/tabBar'; import { fetchStxWalletDataRequestAction } from '@stores/wallet/actions/actionCreators'; -import RecipientAddressView from '@components/recipinetAddressView'; -import TransferAmountView from '@components/transferAmountView'; import ConfirmStxTransationComponent from '@components/confirmStxTransactionComponent'; import TopRow from '@components/topRow'; -import BigNumber from 'bignumber.js'; import useNetworkSelector from '@hooks/useNetwork'; - -const InfoContainer = styled.div((props) => ({ - display: 'flex', - flexDirection: 'column', - marginTop: props.theme.spacing(12), - paddingBottom: props.theme.spacing(12), - borderBottom: `1px solid ${props.theme.colors.background.elevation3}`, -})); - -const TitleText = styled.h1((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white['400'], - textTransform: 'uppercase', -})); - -const ValueText = styled.h1((props) => ({ - ...props.theme.body_m, - marginTop: props.theme.spacing(2), - wordBreak: 'break-all', -})); +import RecipientComponent from '@components/recipientComponent'; +import TransactionDetailComponent from '@components/transactionDetailComponent'; +import TransferMemoView from '@components/confirmStxTransactionComponent/transferMemoView'; function ConfirmFtTransaction() { const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); @@ -114,18 +92,15 @@ function ConfirmFtTransaction() { onConfirmClick={handleOnConfirmClick} onCancelClick={handleBackButtonClick} > - - - - {t('NETWORK')} - {network.type} - - {!!memo && ( - - {t('MEMO')} - {memo} - - )} + + + {memo && } diff --git a/src/app/screens/confirmNftTransaction/index.tsx b/src/app/screens/confirmNftTransaction/index.tsx index 43e859540..79766d177 100644 --- a/src/app/screens/confirmNftTransaction/index.tsx +++ b/src/app/screens/confirmNftTransaction/index.tsx @@ -11,13 +11,15 @@ import Seperator from '@components/seperator'; import { StoreState } from '@stores/index'; import BottomBar from '@components/tabBar'; import { fetchStxWalletDataRequestAction } from '@stores/wallet/actions/actionCreators'; -import RecipientAddressView from '@components/recipinetAddressView'; +import AssetIcon from '@assets/img/transactions/Assets.svg'; import ConfirmStxTransationComponent from '@components/confirmStxTransactionComponent'; import useNftDataSelector from '@hooks/useNftDataSelector'; import NftImage from '@screens/nftDashboard/nftImage'; import AccountHeaderComponent from '@components/accountHeader'; import TopRow from '@components/topRow'; import useNetworkSelector from '@hooks/useNetwork'; +import RecipientComponent from '@components/recipientComponent'; +import TransactionDetailComponent from '@components/transactionDetailComponent'; const ScrollContainer = styled.div` display: flex; @@ -109,10 +111,11 @@ const NFtContainer = styled.div((props) => ({ marginBottom: props.theme.spacing(6), })); -const NftTitleText = styled.h1((props) => ({ +const ReviewTransactionText = styled.h1((props) => ({ ...props.theme.headline_s, - color: props.theme.colors.white['0'], - textAlign: 'center', + color: props.theme.colors.white[0], + marginBottom: props.theme.spacing(16), + textAlign: 'center' })); function ConfirmNftTransaction() { @@ -171,13 +174,6 @@ function ConfirmNftTransaction() { } }, [txError]); - const networkInfoSection = ( - - {t('NETWORK')} - {network.type} - - ); - const handleOnConfirmClick = (txs: StacksTransaction[]) => { mutate({ signedTx: txs[0] }); }; @@ -208,20 +204,24 @@ function ConfirmNftTransaction() { loading={isLoading} onConfirmClick={handleOnConfirmClick} onCancelClick={handleOnCancelClick} + isAsset > - {t('INDICATION')} - - {nft?.token_metadata.name} + {t('REVIEW_TRNSACTION')} - - {networkInfoSection} - + + {!isGalleryOpen && } diff --git a/src/app/screens/confirmStxTransaction/index.tsx b/src/app/screens/confirmStxTransaction/index.tsx index 5e69d9d53..49a99f870 100644 --- a/src/app/screens/confirmStxTransaction/index.tsx +++ b/src/app/screens/confirmStxTransaction/index.tsx @@ -23,29 +23,10 @@ import RecipientComponent from '@components/recipientComponent'; import TransferMemoView from '@components/confirmStxTransactionComponent/transferMemoView'; import ConfirmStxTransationComponent from '../../components/confirmStxTransactionComponent'; -const Container = styled.div((props) => ({ - display: 'flex', - flexDirection: 'column', - marginTop: props.theme.spacing(12), - marginBottom: props.theme.spacing(4), -})); - const AlertContainer = styled.div((props) => ({ marginTop: props.theme.spacing(12), })); -const TitleText = styled.h1((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white['400'], - textTransform: 'uppercase', -})); - -const ValueText = styled.h1((props) => ({ - ...props.theme.body_m, - marginTop: props.theme.spacing(2), - wordBreak: 'break-all', -})); - function ConfirmStxTransaction() { const { t } = useTranslation('translation'); const [fee, setStateFee] = useState(new BigNumber(0)); @@ -54,7 +35,6 @@ function ConfirmStxTransaction() { const [total, setTotal] = useState(new BigNumber(0)); const [fiatTotal, setFiatTotal] = useState(new BigNumber(0)); const [hasTabClosed, setHasTabClosed] = useState(false); - const [expandTransferMemoView, setExpandTransferMemoView] = useState(false); const [recipient, setRecipient] = useState(''); const [txRaw, setTxRaw] = useState(''); const [memo, setMemo] = useState(''); @@ -150,10 +130,6 @@ function ConfirmStxTransaction() { return microstacksToStx(amountToTransfer); }; - const expandTransferMemoSection = () => { - setExpandTransferMemoView(!expandTransferMemoView); - }; - const handleOnConfirmClick = (txs: StacksTransaction[]) => { setTxRaw(txs[0].serialize().toString('hex')); mutate({ signedTx: txs[0] }); @@ -187,9 +163,9 @@ function ConfirmStxTransaction() { > From 0cc38212a527cb49a0ab568ce08001c9f59b46ef Mon Sep 17 00:00:00 2001 From: Imamah-Zafar <88320460+Imamah-Zafar@users.noreply.github.com> Date: Tue, 14 Mar 2023 13:28:18 +0500 Subject: [PATCH 05/26] update post condition card --- .../postCondition/ftPostConditionCard.tsx | 1 + .../postCondition/nftPostConditionCard.tsx | 2 + .../postCondition/postConditionView/index.tsx | 75 +++++-------------- .../postCondition/stxPostConditionCard.tsx | 2 + .../transactionDetailComponent/index.tsx | 4 +- .../ContractCallRequest.tsx | 54 +++---------- .../transferAmountComponent/index.tsx | 63 +++++----------- .../components/transferDetailView/index.tsx | 4 +- 8 files changed, 57 insertions(+), 148 deletions(-) diff --git a/src/app/components/postCondition/ftPostConditionCard.tsx b/src/app/components/postCondition/ftPostConditionCard.tsx index 414df8b78..83b5fed9c 100644 --- a/src/app/components/postCondition/ftPostConditionCard.tsx +++ b/src/app/components/postCondition/ftPostConditionCard.tsx @@ -17,6 +17,7 @@ function FtPostConditionCard({ postCondition, ftMetaData }: Props) { ); } diff --git a/src/app/components/postCondition/nftPostConditionCard.tsx b/src/app/components/postCondition/nftPostConditionCard.tsx index 6a3b34144..fc5c0e286 100644 --- a/src/app/components/postCondition/nftPostConditionCard.tsx +++ b/src/app/components/postCondition/nftPostConditionCard.tsx @@ -1,4 +1,5 @@ import { PostCondition } from '@stacks/transactions'; +import AssetIcon from '@assets/img/transactions/Assets.svg'; import PostConditionsView from './postConditionView'; import { getAmountFromPostCondition } from './postConditionView/helper'; @@ -11,6 +12,7 @@ function NftPostConditionCard({ postCondition }: Props) { ); } diff --git a/src/app/components/postCondition/postConditionView/index.tsx b/src/app/components/postCondition/postConditionView/index.tsx index 8d58889da..137fabb33 100644 --- a/src/app/components/postCondition/postConditionView/index.tsx +++ b/src/app/components/postCondition/postConditionView/index.tsx @@ -7,48 +7,21 @@ import { NonFungibleConditionCode, PostCondition, } from '@stacks/transactions'; -import styled from 'styled-components'; import { useTranslation } from 'react-i18next'; -import Seperator from '@components/seperator'; -import { useContext } from 'react'; -import { ShowMoreContext } from '@components/transactionsRequests/ContractCallRequest'; -import RedirectAddressView from '@components/redirectAddressView'; + +import TransferAmountComponent from '@components/transferAmountComponent'; import { getNameFromPostCondition, getSymbolFromPostCondition, } from './helper'; -const MainContainer = styled.div({ - display: 'flex', - flexDirection: 'column', - width: '100%', -}); - -const PostConditionContainer = styled.div((props) => ({ - display: 'flex', - flexDirection: 'column', - flex: 1, - marginTop: props.theme.spacing(4), -})); - -const Title = styled.h1((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white['400'], - marginTop: 24, - textTransform: 'uppercase', -})); - -const TickerText = styled.h1((props) => ({ - ...props.theme.body_m, - color: props.theme.colors.white['0'], -})); - type Props = { postCondition: PostCondition; amount: string; + icon?: string; }; -function PostConditionsView({ postCondition, amount }: Props) { +function PostConditionsView({ postCondition, amount, icon }: Props) { const { stxAddress } = useSelector((state: StoreState) => ({ ...state.walletState, })); @@ -81,33 +54,21 @@ function PostConditionsView({ postCondition, amount }: Props) { const address = addressToString(postCondition?.principal?.address!); const isSending = address === stxAddress; const isContractPrincipal = !!contractName || address.includes('.'); - const { showMore } = useContext(ShowMoreContext); - return ( - - - {`${ - isContractPrincipal ? t('CONTRACT') : isSending ? t('YOU') : t('ANOTHER_ADDRESS') - } ${title}`} - - - {`${amount} ${ticker}`} - {name !== 'STX' && {name}} - {showMore && ( - <> - - - - )} - - + ); } export default PostConditionsView; diff --git a/src/app/components/postCondition/stxPostConditionCard.tsx b/src/app/components/postCondition/stxPostConditionCard.tsx index e04471b8e..b03d416fb 100644 --- a/src/app/components/postCondition/stxPostConditionCard.tsx +++ b/src/app/components/postCondition/stxPostConditionCard.tsx @@ -1,4 +1,5 @@ import { PostCondition } from '@stacks/transactions'; +import IconStacks from '@assets/img/dashboard/stack_icon.svg'; import PostConditionsView from './postConditionView'; import { getAmountFromPostCondition } from './postConditionView/helper'; @@ -11,6 +12,7 @@ function StxPostConditionCard({ postCondition }: Props) { ); } diff --git a/src/app/components/transactionDetailComponent/index.tsx b/src/app/components/transactionDetailComponent/index.tsx index 166c35a2e..8d70c5f15 100644 --- a/src/app/components/transactionDetailComponent/index.tsx +++ b/src/app/components/transactionDetailComponent/index.tsx @@ -48,11 +48,12 @@ interface Props { title: string; subTitle?: string; value?: string; + description?: string; subValue?: BigNumber; } function TransactionDetailComponent({ - title, subTitle, value, subValue, + title, subTitle, value, subValue, description, }: Props) { const { fiatCurrency, @@ -83,6 +84,7 @@ function TransactionDetailComponent({ {value && {value}} + {description && {description}} {subValue && {getFiatAmountString(subValue)}} diff --git a/src/app/components/transactionsRequests/ContractCallRequest.tsx b/src/app/components/transactionsRequests/ContractCallRequest.tsx index a3e79c200..e305dd9c6 100644 --- a/src/app/components/transactionsRequests/ContractCallRequest.tsx +++ b/src/app/components/transactionsRequests/ContractCallRequest.tsx @@ -22,7 +22,6 @@ import { Coin, extractFromPayload, } from '@secretkeylabs/xverse-core'; -import RedirectAddressView from '@components/redirectAddressView'; import { useNavigate } from 'react-router-dom'; import { Args, ContractFunction } from '@secretkeylabs/xverse-core/types/api/stacks/transaction'; import FtPostConditionCard from '@components/postCondition/ftPostConditionCard'; @@ -31,6 +30,7 @@ import AccountHeaderComponent from '@components/accountHeader'; import useOnOriginTabClose from '@hooks/useOnTabClosed'; import InfoContainer from '@components/infoContainer'; import useNetworkSelector from '@hooks/useNetwork'; +import TransactionDetailComponent from '@components/transactionDetailComponent'; import finalizeTxSignature from './utils'; const PostConditionContainer = styled.div((props) => ({ @@ -118,31 +118,6 @@ const DappTitle = styled.h2((props) => ({ marginTop: 4, })); -const Title = styled.h1((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white['400'], - textTransform: 'uppercase', - marginTop: props.theme.spacing(12), -})); - -const Value = styled.h1((props) => ({ - ...props.theme.body_m, - color: props.theme.colors.white['0'], - marginTop: props.theme.spacing(2), -})); - -const Detail = styled.h1((props) => ({ - ...props.theme.body_xs, - color: props.theme.colors.white['400'], - textTransform: 'uppercase', - marginTop: props.theme.spacing(2), -})); - -const FuncArgContainer = styled.div({ - display: 'flex', - flexDirection: 'column', -}); - const Container = styled.div((props) => ({ display: 'flex', flexDirection: 'column', @@ -217,9 +192,6 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { ); - const renderContractAddress = isShowMore && ( - - ); type ArgToView = { name: string; value: string; type: any }; const getFunctionArgs = (): Array => { const args: Array = []; @@ -257,17 +229,16 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { return args; }; + const truncateFunctionArgsView = (value: string) => `${value.substring(0, 12)}...${value.substring( + value.length - 12, + value.length, + )}`; + const functionArgsView = () => { const args = getFunctionArgs(); - if (isShowMore) { - return args.map((arg, index) => ( - - {arg.name} - {arg.value} - {arg.type} - - )); - } + return args.map((arg, index) => ( + 20 ? truncateFunctionArgsView(arg.value) : arg.value} description={arg.type} /> + )); }; const showSponsoredTransactionTag = ( @@ -374,13 +345,8 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { {postConditionAlert} {request.sponsored && showSponsoredTransactionTag} {renderPostConditionsCard()} - - {t('CONTRACT_CALL_REQUEST.FUNCTION')} - {request?.functionName} - + {functionArgsView()} - {renderContractAddress} - {showMoreButton} diff --git a/src/app/components/transferAmountComponent/index.tsx b/src/app/components/transferAmountComponent/index.tsx index bfaf08ace..f1501961a 100644 --- a/src/app/components/transferAmountComponent/index.tsx +++ b/src/app/components/transferAmountComponent/index.tsx @@ -1,16 +1,11 @@ import styled from 'styled-components'; import DropDownIcon from '@assets/img/transactions/dropDownIcon.svg'; -import AddressIcon from '@assets/img/transactions/address.svg'; import { useTranslation } from 'react-i18next'; -import { NumericFormat } from 'react-number-format'; -import { currencySymbolMap } from '@secretkeylabs/xverse-core/types/currency'; -import { useSelector } from 'react-redux'; -import BigNumber from 'bignumber.js'; import { animated, config, useSpring, } from '@react-spring/web'; -import { StoreState } from '@stores/index'; import TransferDetailView from '@components/transferDetailView'; +import { useState } from 'react'; const Container = styled.div((props) => ({ display: 'flex', @@ -91,30 +86,27 @@ const Button = styled.button((props) => ({ interface Props { title: string; - address: string; description?: string; value: string; - subValue: string; - icon: string; - isExpanded?: boolean; - onArrowClick: () => void; + address?: string; + subTitle?: string; + subValue?: string; + icon?: string; } function TransferAmountComponent({ - title, address, value, subValue, description, icon, isExpanded = false, onArrowClick, + title, address, value, subValue, description, icon, subTitle, }: Props) { const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); - const { - fiatCurrency, - } = useSelector((state: StoreState) => state.walletState); + const [isExpanded, setIsExpanded] = useState(false); const slideInStyles = useSpring({ config: { ...config.gentle, duration: 400 }, from: { opacity: 0, height: 0 }, to: { opacity: isExpanded ? 1 : 0, - height: isExpanded ? 80 : 0, + height: isExpanded ? 90 : 0, }, }); @@ -123,36 +115,20 @@ function TransferAmountComponent({ config: { ...config.stiff }, }); - const getFiatAmountString = (fiatAmount: BigNumber) => { - if (fiatAmount) { - if (fiatAmount.isLessThan(0.01)) { - return `<${currencySymbolMap[fiatCurrency]}0.01 ${fiatCurrency}`; - } - return ( - {text}} - /> - ); - } - return ''; - }; - const renderAmount = value && ( <> {value} - {isExpanded && {getFiatAmountString(subValue)}} + {isExpanded && subValue && {subValue}} ); + const onArrowClick = () => { + setIsExpanded(!isExpanded); + }; + return ( - {icon && !isExpanded && } {title} {!isExpanded && renderAmount} @@ -164,18 +140,17 @@ function TransferAmountComponent({ {isExpanded && ( - {description} + {description && {description}} - - {t('AMOUNT')} + {icon && } + {subValue === '' ? t('AMOUNT') : t('ASSET')} {renderAmount} - {/* - {t('FROM')} - - */} + + + )} diff --git a/src/app/components/transferDetailView/index.tsx b/src/app/components/transferDetailView/index.tsx index 9541f7b5f..324b57e85 100644 --- a/src/app/components/transferDetailView/index.tsx +++ b/src/app/components/transferDetailView/index.tsx @@ -47,7 +47,7 @@ const ColumnContainer = styled.div({ }); interface Props { - icon: string; + icon?: string; title?: string; amount?: string; children?: ReactNode; @@ -62,7 +62,7 @@ function TransferDetailView({ const isWalletAddress = btcAddress === address || ordinalsAddress === address; return ( - + {icon && } {amount ? ( {amount} From d0288206530fe2c9f409179042ec5468c300daa7 Mon Sep 17 00:00:00 2001 From: Imamah-Zafar <88320460+Imamah-Zafar@users.noreply.github.com> Date: Tue, 21 Mar 2023 11:25:46 +0500 Subject: [PATCH 06/26] add restore fund ui in btc confirmation screen --- .../btcRecipientComponent.tsx | 40 ++++++++++++++++--- .../confirmBtcTransactionComponent/index.tsx | 3 ++ .../screens/confrimBtcTransaction/index.tsx | 1 + src/assets/img/transactions/ArrowDown.svg | 4 ++ src/assets/img/transactions/wallet.svg | 4 ++ src/locales/en.json | 3 +- 6 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 src/assets/img/transactions/ArrowDown.svg create mode 100644 src/assets/img/transactions/wallet.svg diff --git a/src/app/components/confirmBtcTransactionComponent/btcRecipientComponent.tsx b/src/app/components/confirmBtcTransactionComponent/btcRecipientComponent.tsx index 3ef0c39f3..1af73143f 100644 --- a/src/app/components/confirmBtcTransactionComponent/btcRecipientComponent.tsx +++ b/src/app/components/confirmBtcTransactionComponent/btcRecipientComponent.tsx @@ -1,5 +1,7 @@ import TransferDetailView from '@components/transferDetailView'; import OutputIcon from '@assets/img/transactions/output.svg'; +import ArrowIcon from '@assets/img/transactions/ArrowDown.svg'; +import WalletIcon from '@assets/img/transactions/wallet.svg'; import { currencySymbolMap } from '@secretkeylabs/xverse-core/types/currency'; import { StoreState } from '@stores/index'; import BigNumber from 'bignumber.js'; @@ -42,6 +44,14 @@ const Icon = styled.img((props) => ({ borderRadius: 30, })); +const DownArrowIcon = styled.img((props) => ({ + width: 16, + height: 16, + marginTop: props.theme.spacing(4), + marginLeft: props.theme.spacing(4), + marginBottom: props.theme.spacing(4), +})); + const TitleText = styled.h1((props) => ({ ...props.theme.body_medium_m, color: props.theme.colors.white[200], @@ -66,6 +76,11 @@ const ColumnContainer = styled.div({ alignItems: 'flex-end', }); +const MultipleAddressContainer = styled.div({ + display: 'flex', + flexDirection: 'column', +}); + interface Props { recipientIndex?: number; address?: string; @@ -75,6 +90,7 @@ interface Props { icon: string; title: string; heading?: string; + showSenderAddress?: string; } function BtcRecipientComponent({ recipientIndex, @@ -85,9 +101,10 @@ function BtcRecipientComponent({ icon, title, heading, + showSenderAddress, }: Props) { const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); - const { fiatCurrency } = useSelector((state: StoreState) => state.walletState); + const { fiatCurrency, ordinalsAddress } = useSelector((state: StoreState) => state.walletState); const getFiatAmountString = (fiatAmount: BigNumber) => { if (fiatAmount) { @@ -110,10 +127,13 @@ function BtcRecipientComponent({ return ( - {recipientIndex && totalRecipient && ( - {`${t( - 'RECIPIENT' - )} ${recipientIndex}/${totalRecipient}`} + {recipientIndex && totalRecipient && totalRecipient !== 1 && ( + + {`${t( + 'RECIPIENT', + )} ${recipientIndex}/${totalRecipient}`} + + )} {heading && {heading}} @@ -126,7 +146,15 @@ function BtcRecipientComponent({ {address && ( - + {showSenderAddress + ? ( + + + + + + ) + : } )} diff --git a/src/app/components/confirmBtcTransactionComponent/index.tsx b/src/app/components/confirmBtcTransactionComponent/index.tsx index 607e8d5e8..b60e4bcc5 100644 --- a/src/app/components/confirmBtcTransactionComponent/index.tsx +++ b/src/app/components/confirmBtcTransactionComponent/index.tsx @@ -110,6 +110,7 @@ interface Props { recipients: Recipient[]; children?: ReactNode; assetDetail?: string; + isRestoreFundFlow?: string; onConfirmClick: (signedTxHex: string) => void; onCancelClick: () => void; onBackButtonClick: () => void; @@ -123,6 +124,7 @@ function ConfirmBtcTransactionComponent({ recipients, children, assetDetail, + isRestoreFundFlow, onConfirmClick, onCancelClick, onBackButtonClick, @@ -261,6 +263,7 @@ function ConfirmBtcTransactionComponent({ value={satsToBtc(recipient?.amountSats).toString()} totalRecipient={recipients?.length} icon={IconBitcoin} + showSenderAddress={isRestoreFundFlow} title={t('CONFIRM_TRANSACTION.AMOUNT')} subValue={getBtcFiatEquivalent( recipient?.amountSats, diff --git a/src/app/screens/confrimBtcTransaction/index.tsx b/src/app/screens/confrimBtcTransaction/index.tsx index bb2e47b91..cb7e05db6 100644 --- a/src/app/screens/confrimBtcTransaction/index.tsx +++ b/src/app/screens/confrimBtcTransaction/index.tsx @@ -132,6 +132,7 @@ function ConfirmBtcTransaction() { recipients={recipient} loadingBroadcastedTx={isLoading} signedTxHex={signedTxHex} + isRestoreFundFlow={isRestoreFundFlow} onConfirmClick={handleOnConfirmClick} onCancelClick={goBackToScreen} onBackButtonClick={goBackToScreen} diff --git a/src/assets/img/transactions/ArrowDown.svg b/src/assets/img/transactions/ArrowDown.svg new file mode 100644 index 000000000..35a86bdeb --- /dev/null +++ b/src/assets/img/transactions/ArrowDown.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/img/transactions/wallet.svg b/src/assets/img/transactions/wallet.svg new file mode 100644 index 000000000..c97859d45 --- /dev/null +++ b/src/assets/img/transactions/wallet.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/locales/en.json b/src/locales/en.json index 61e2a3edd..3df2d5759 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -109,7 +109,8 @@ "PSBT_NO_BROADCAST_DISCLAIMER": "This transaction will not be broadcasted from your wallet. It may be broadcasted later by a third party.", "PSBT_CANT_PARSE_ERROR_TITLE": "Transaction Error", "PSBT_CANT_PARSE_ERROR_DESCRIPTION": "The requested transaction is invalid and cannot be processed please contact the developer of the requesting app for support", - "PSBT_CANT_SIGN_ERROR_TITLE": "Failed to sign transaction" + "PSBT_CANT_SIGN_ERROR_TITLE": "Failed to sign transaction", + "To": "To" }, "TX_ERRORS": { "INSUFFICIENT_BALANCE": "Insufficient balance", From 2772f5010d1519a5d119dc717a8ebd3ac0ebffe5 Mon Sep 17 00:00:00 2001 From: Imamah-Zafar <88320460+Imamah-Zafar@users.noreply.github.com> Date: Fri, 24 Mar 2023 14:04:33 +0500 Subject: [PATCH 07/26] add subtitle option in confirm stx screen --- .../confirmStxTransactionComponent/index.tsx | 22 +++++++++++++++++-- .../ContractCallRequest.tsx | 8 ++----- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/app/components/confirmStxTransactionComponent/index.tsx b/src/app/components/confirmStxTransactionComponent/index.tsx index 6c513c8d7..01c63b816 100644 --- a/src/app/components/confirmStxTransactionComponent/index.tsx +++ b/src/app/components/confirmStxTransactionComponent/index.tsx @@ -76,10 +76,20 @@ const SponsoredInfoText = styled.h1((props) => ({ const ReviewTransactionText = styled.h1((props) => ({ ...props.theme.headline_s, color: props.theme.colors.white[0], - marginBottom: props.theme.spacing(16), textAlign: 'left', })); +const RequestedByText = styled.h1((props) => ({ + ...props.theme.body_medium_m, + color: props.theme.colors.white[400], + marginTop: props.theme.spacing(4), + textAlign: 'left', +})); + +const TitleContainer = styled.div((props) => ({ + marginBottom: props.theme.spacing(16), +})); + interface Props { initialStxTransactions: StacksTransaction[]; loading: boolean; @@ -88,6 +98,9 @@ interface Props { children: ReactNode; isSponsored?: boolean; isAsset?: boolean; + title?: string; + subTitle?: string; + } function ConfirmStxTransationComponent({ @@ -96,6 +109,8 @@ function ConfirmStxTransationComponent({ isSponsored, children, isAsset, + title, + subTitle, onConfirmClick, onCancelClick, }: Props) { @@ -164,7 +179,10 @@ function ConfirmStxTransationComponent({ return ( <> - {!isAsset && {t('REVIEW_TRNSACTION')}} + + {!isAsset && {title ?? t('REVIEW_TRNSACTION')}} + {subTitle && {subTitle}} + {children} {initialStxTransactions[0]?.payload?.amount && ( diff --git a/src/app/components/transactionsRequests/ContractCallRequest.tsx b/src/app/components/transactionsRequests/ContractCallRequest.tsx index e305dd9c6..c733c15ed 100644 --- a/src/app/components/transactionsRequests/ContractCallRequest.tsx +++ b/src/app/components/transactionsRequests/ContractCallRequest.tsx @@ -333,15 +333,11 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { onConfirmClick={confirmCallback} onCancelClick={cancelCallback} loading={false} + title={request.functionName} + subTitle={`Requested by ${request.appDetails?.name}`} > <> - - - {request.functionName} - {`Requested by ${request.appDetails?.name}`} - {hasTabClosed && } - {postConditionAlert} {request.sponsored && showSponsoredTransactionTag} {renderPostConditionsCard()} From 4064d4b325704e063b7423cdf2c2d714c7731e19 Mon Sep 17 00:00:00 2001 From: Imamah-Zafar Date: Mon, 10 Apr 2023 16:01:49 +0500 Subject: [PATCH 08/26] update deploy contract ui --- .../ContractDeployTransaction.tsx | 74 +++++-------------- 1 file changed, 18 insertions(+), 56 deletions(-) diff --git a/src/app/components/transactionsRequests/ContractDeployTransaction.tsx b/src/app/components/transactionsRequests/ContractDeployTransaction.tsx index 7d3a79818..b7678dde2 100644 --- a/src/app/components/transactionsRequests/ContractDeployTransaction.tsx +++ b/src/app/components/transactionsRequests/ContractDeployTransaction.tsx @@ -2,7 +2,6 @@ import ConfirmStxTransationComponent from '@components/confirmStxTransactionComp import { PostCondition, StacksTransaction } from '@stacks/transactions'; import styled from 'styled-components'; import DownloadImage from '@assets/img/webInteractions/ArrowLineDown.svg'; -import DeployContractImage from '@assets/img/webInteractions/deploy_contract.svg'; import { useTranslation } from 'react-i18next'; import { useState } from 'react'; import StxPostConditionCard from '@components/postCondition/stxPostConditionCard'; @@ -14,55 +13,24 @@ import AccountHeaderComponent from '@components/accountHeader'; import useOnOriginTabClose from '@hooks/useOnTabClosed'; import InfoContainer from '@components/infoContainer'; import useNetworkSelector from '@hooks/useNetwork'; +import TransactionDetailComponent from '@components/transactionDetailComponent'; import finalizeTxSignature from './utils'; -const Container = styled.div((props) => ({ - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', - marginBottom: props.theme.spacing(12), -})); - -const TopImage = styled.img({ - width: 88, - height: 88, -}); - -const FunctionTitle = styled.h1((props) => ({ - ...props.theme.headline_s, - color: props.theme.colors.white['0'], - marginTop: 16, -})); - const Title = styled.h1((props) => ({ ...props.theme.headline_category_s, color: props.theme.colors.white['400'], textTransform: 'uppercase', })); -const Value = styled.h1((props) => ({ - ...props.theme.body_m, - color: props.theme.colors.white['0'], - marginTop: props.theme.spacing(2), -})); - -const ColumnContainer = styled.div((props) => ({ - display: 'flex', - marginTop: props.theme.spacing(6), - paddingTop: props.theme.spacing(12), - paddingBottom: props.theme.spacing(12), - borderTop: `0.5px solid ${props.theme.colors.background.elevation3}`, - borderBottom: `0.5px solid ${props.theme.colors.background.elevation3}`, - flexDirection: 'column', -})); - const DownloadContainer = styled.div((props) => ({ display: 'flex', - marginTop: props.theme.spacing(13.5), flexDirection: 'row', + background: props.theme.colors.background.elevation1, + borderRadius: 12, + padding: '12px 16px', justifyContent: 'center', alignItems: 'center', + marginBottom: 12, })); const PostConditionContainer = styled.div((props) => ({ @@ -235,32 +203,26 @@ export default function ContractDeployRequest(props: ContractDeployRequestProps) onCancelClick={cancelCallback} loading={loaderForBroadcastingTx} isSponsored={sponsored} + title={t('DEPLOY_CONTRACT_REQUEST.DEPLOY_CONTRACT')} > - - - {t('DEPLOY_CONTRACT_REQUEST.DEPLOY_CONTRACT')} - {hasTabClosed && } {postConditionAlert} {sponsored && showSponsoredTransactionTag} {unsignedTx?.postConditions?.values?.map((postCondition) => ( ))} - - {t('DEPLOY_CONTRACT_REQUEST.CONTRACT_NAME')} - {contractName} - - {t('DEPLOY_CONTRACT_REQUEST.FUNCTION')} - - - - - + + + {t('DEPLOY_CONTRACT_REQUEST.FUNCTION')} + + + + ); From 4940ff40de035f5df554bff686945046232efcb7 Mon Sep 17 00:00:00 2001 From: Imamah-Zafar Date: Mon, 10 Apr 2023 17:24:47 +0500 Subject: [PATCH 09/26] update sign message transavtion ui --- .../ContractCallRequest.tsx | 1 - .../signatureRequest/clarityMessageView.tsx | 1 + .../signatureRequest/collapsableContainer.tsx | 115 ++++++++++++++++++ src/app/screens/signatureRequest/index.tsx | 85 ++----------- .../signatureRequestMessage.tsx | 24 +--- .../signatureRequestStructuredData.tsx | 6 +- 6 files changed, 135 insertions(+), 97 deletions(-) create mode 100644 src/app/screens/signatureRequest/collapsableContainer.tsx diff --git a/src/app/components/transactionsRequests/ContractCallRequest.tsx b/src/app/components/transactionsRequests/ContractCallRequest.tsx index c733c15ed..330483acc 100644 --- a/src/app/components/transactionsRequests/ContractCallRequest.tsx +++ b/src/app/components/transactionsRequests/ContractCallRequest.tsx @@ -170,7 +170,6 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { const [hasTabClosed, setHasTabClosed] = useState(false); const { t } = useTranslation('translation'); const [isShowMore, setIsShowMore] = useState(false); - const Illustration = headerImageMapping[request.functionName ?? '']; useOnOriginTabClose( tabId, diff --git a/src/app/screens/signatureRequest/clarityMessageView.tsx b/src/app/screens/signatureRequest/clarityMessageView.tsx index 1a95b2a4d..4a52ba1c8 100644 --- a/src/app/screens/signatureRequest/clarityMessageView.tsx +++ b/src/app/screens/signatureRequest/clarityMessageView.tsx @@ -24,6 +24,7 @@ const ClarityValueKey = styled.p((props) => ({ ...props.theme.body_m, color: props.theme.colors.white[200], marginRight: props.theme.spacing(4), + wordWrap: 'break-word', })); function wrapText(text: string): JSX.Element { diff --git a/src/app/screens/signatureRequest/collapsableContainer.tsx b/src/app/screens/signatureRequest/collapsableContainer.tsx new file mode 100644 index 000000000..e75e3c8c6 --- /dev/null +++ b/src/app/screens/signatureRequest/collapsableContainer.tsx @@ -0,0 +1,115 @@ +import styled from 'styled-components'; +import { + animated, config, useSpring, +} from '@react-spring/web'; +import DropDownIcon from '@assets/img/transactions/dropDownIcon.svg'; +import { useEffect, useState } from 'react'; + +interface Props { + title: string; + text: string; + children: React.ReactNode; +} + +const ContentContainer = styled.div((props) => ({ + display: 'flex', + flexDirection: 'column', + background: props.theme.colors.background.elevation1, + borderRadius: 12, + padding: '12px 16px', + justifyContent: 'center', + marginBottom: 12, + flex: 1, +})); + +const RowContainer = styled.div({ + display: 'flex', + flexDirection: 'row', + width: '100%', + alignItems: 'center', +}); + +const RequestMessageTitle = styled.p((props) => ({ + ...props.theme.body_medium_m, + color: props.theme.colors.white[200], + marginBottom: props.theme.spacing(2), + opacity: 0.7, + flex: 1, +})); + +const Button = styled.button((props) => ({ + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + background: 'transparent', + marginLeft: props.theme.spacing(4), +})); + +const ExpandedContainer = styled(animated.div)({ + display: 'flex', + flexDirection: 'column', + marginTop: 4, +}); + +const Text = styled.p((props) => ({ + ...props.theme.body_medium_m, + textAlign: 'left', + lineHeight: 1.6, + wordWrap: 'break-word', + color: props.theme.colors.white[0], + marginBottom: props.theme.spacing(4), +})); + +export default function CollapsableContainer(props: Props) { + const [isExpanded, setIsExpanded] = useState(false); + const [showArrow, setShowArrow] = useState(true); + const [infoText, setInfoText] = useState(''); + const { + title, children, text, + } = props; + + useEffect(() => { + setInfoText(text); + if (text.length > 35) { + const concatenatedText = `${text.substring(0, 35)}...`; + setInfoText(concatenatedText); + } else { + setShowArrow(true); + } + }); + + const slideInStyles = useSpring({ + config: { ...config.gentle, duration: 400 }, + from: { opacity: 0, height: 0 }, + to: { + opacity: isExpanded ? 1 : 0, + height: isExpanded ? 'auto' : 0, + }, + }); + + const arrowRotation = useSpring({ + transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)', + config: { ...config.stiff }, + }); + + const onArrowClick = () => { + setIsExpanded(!isExpanded); + }; + + return ( + + + {title} + {showArrow && ( + + )} + + {!isExpanded && text !== '' && {infoText}} + + {children} + + + ); +} diff --git a/src/app/screens/signatureRequest/index.tsx b/src/app/screens/signatureRequest/index.tsx index bf07e41ed..b4be1f033 100644 --- a/src/app/screens/signatureRequest/index.tsx +++ b/src/app/screens/signatureRequest/index.tsx @@ -5,14 +5,10 @@ import useSignatureRequest, { isUtf8Message, useSignMessage, } from '@hooks/useSignatureRequest'; -import SignatureIcon from '@assets/img/webInteractions/signatureIcon.svg'; -import Plus from '@assets/img/transactions/Plus.svg'; -import Minus from '@assets/img/transactions/Minus.svg'; import AccountHeaderComponent from '@components/accountHeader'; import { useTranslation } from 'react-i18next'; import { SignaturePayload, StructuredDataSignaturePayload } from '@stacks/connect'; import { useEffect, useState } from 'react'; -import Seperator from '@components/seperator'; import { bytesToHex } from '@stacks/transactions'; import useWalletSelector from '@hooks/useWalletSelector'; import useWalletReducer from '@hooks/useWalletReducer'; @@ -23,6 +19,7 @@ import { hashMessage } from '@secretkeylabs/xverse-core'; import SignatureRequestMessage from './signatureRequestMessage'; import SignatureRequestStructuredData from './signatureRequestStructuredData'; import { finalizeMessageSignature } from './utils'; +import CollapsableContainer from './collapsableContainer'; const MainContainer = styled.div((props) => ({ display: 'flex', @@ -33,64 +30,23 @@ const MainContainer = styled.div((props) => ({ height: '100%', })); -const RequestImage = styled.img((props) => ({ - marginTop: props.theme.spacing(20), - marginBottom: props.theme.spacing(12), - alignSelf: 'center', -})); - const RequestType = styled.h1((props) => ({ - ...props.theme.headline_m, + ...props.theme.headline_s, + marginTop: props.theme.spacing(21), color: props.theme.colors.white[0], - textAlign: 'center', + textAlign: 'left', })); const RequestSource = styled.h2((props) => ({ - ...props.theme.body_l, - color: props.theme.colors.white['400'], - marginTop: props.theme.spacing(2), + ...props.theme.body_medium_m, + color: props.theme.colors.white[400], + marginTop: props.theme.spacing(4), + textAlign: 'left', marginBottom: props.theme.spacing(12), - textAlign: 'center', -})); - -const ShowHashButtonContainer = styled.div({ - display: 'flex', - flexDirection: 'row', - alignItems: 'center', - width: '100%', - div: { - flex: 1, - }, -}); - -const ShowHashButton = styled.button((props) => ({ - ...props.theme.body_xs, - background: 'none', - display: 'flex', - flexDirection: 'row', - justifyContent: 'center', - alignItems: 'center', - color: props.theme.colors.white[0], - marginBottom: props.theme.spacing(6), - marginTop: props.theme.spacing(12), - width: 111, - height: 34, - borderRadius: props.theme.radius(3), - border: `1px solid ${props.theme.colors.background.elevation3}`, - img: { - marginLeft: props.theme.spacing(2), - }, -})); - -const MessageHashTitle = styled.p((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white[200], - marginBottom: props.theme.spacing(2), - opacity: 0.7, })); const MessageHash = styled.p((props) => ({ - ...props.theme.body_m, + ...props.theme.body_medium_m, textAlign: 'left', lineHeight: 1.6, wordWrap: 'break-word', @@ -107,7 +63,6 @@ const ActionDisclaimer = styled.p((props) => ({ function SignatureRequest(): JSX.Element { const { t } = useTranslation('translation'); const [isSigning, setIsSigning] = useState(false); - const [showHash, setShowHash] = useState(false); const { selectedAccount, accountsList, network } = useWalletSelector(); const { switchAccount } = useWalletReducer(); const { @@ -156,10 +111,6 @@ function SignatureRequest(): JSX.Element { window.close(); }; - const handleShowHash = async () => { - setShowHash((current) => !current); - }; - const confirmCallback = async () => { try { setIsSigning(true); @@ -187,7 +138,6 @@ function SignatureRequest(): JSX.Element { > - {t('SIGNATURE_REQUEST.TITLE')} {`${t('SIGNATURE_REQUEST.DAPP_NAME_PREFIX')} ${payload.appDetails?.name}`} {isUtf8Message(messageType) && ( @@ -200,20 +150,9 @@ function SignatureRequest(): JSX.Element { payload={payload as StructuredDataSignaturePayload} /> )} - - - - {showHash ? t('SIGNATURE_REQUEST.HIDE_HASH_BUTTON') : t('SIGNATURE_REQUEST.SHOW_HASH_BUTTON')} - Show - - - - {showHash ? ( - <> - {t('SIGNATURE_REQUEST.MESSAGE_HASH_HEADER')} - {bytesToHex(hashMessage(payload.message))} - - ) : null} + + {bytesToHex(hashMessage(payload.message))} + {t('SIGNATURE_REQUEST.ACTION_DISCLAIMER')} diff --git a/src/app/screens/signatureRequest/signatureRequestMessage.tsx b/src/app/screens/signatureRequest/signatureRequestMessage.tsx index 12327e03c..bbc178918 100644 --- a/src/app/screens/signatureRequest/signatureRequestMessage.tsx +++ b/src/app/screens/signatureRequest/signatureRequestMessage.tsx @@ -1,32 +1,17 @@ import { SignaturePayload } from '@stacks/connect'; import styled from 'styled-components'; - import { useTranslation } from 'react-i18next'; +import CollapsableContainer from './collapsableContainer'; interface SignatureRequestMessageProps { request: SignaturePayload, } -const ContentContainer = styled.div({ - display: 'flex', - flexDirection: 'column', - flex: 1, -}); - -const RequestMessageTitle = styled.p((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white[200], - marginBottom: props.theme.spacing(2), - opacity: 0.7, -})); - const RequestMessage = styled.p((props) => ({ - ...props.theme.body_m, + ...props.theme.body_medium_m, textAlign: 'left', - lineHeight: 1.6, wordWrap: 'break-word', color: props.theme.colors.white[0], - marginBottom: props.theme.spacing(4), })); export default function SignatureRequestMessage(props: SignatureRequestMessageProps) { @@ -36,11 +21,10 @@ export default function SignatureRequestMessage(props: SignatureRequestMessagePr } = props; return ( - - {t('MESSAGE_HEADER')} + {request.message.split(/\r?\n/).map((line) => ( {line} ))} - + ); } diff --git a/src/app/screens/signatureRequest/signatureRequestStructuredData.tsx b/src/app/screens/signatureRequest/signatureRequestStructuredData.tsx index d72e3aaff..757d895d1 100644 --- a/src/app/screens/signatureRequest/signatureRequestStructuredData.tsx +++ b/src/app/screens/signatureRequest/signatureRequestStructuredData.tsx @@ -3,6 +3,7 @@ import { deserializeCV } from '@stacks/transactions/dist/esm/clarity'; import { useTranslation } from 'react-i18next'; import styled from 'styled-components'; import ClarityMessageView from './clarityMessageView'; +import CollapsableContainer from './collapsableContainer'; interface SignatureRequestStructuredDataProps { payload: StructuredDataSignaturePayload; @@ -25,12 +26,11 @@ export default function SignatureRequestStructuredData(props: SignatureRequestSt const { t } = useTranslation('translation', { keyPrefix: 'SIGNATURE_REQUEST' }); const { payload } = props; return ( - - {t('MESSAGE_HEADER')} + - + ); } From da692b2f686833ddc0be3332c046016782bfac1c Mon Sep 17 00:00:00 2001 From: Imamah-Zafar Date: Tue, 11 Apr 2023 11:14:33 +0500 Subject: [PATCH 10/26] remove unused components --- .../inputOutputComponent.tsx | 2 +- .../components/recipinetAddressView/index.tsx | 82 ------------------- .../components/redirectAddressView/index.tsx | 69 ---------------- .../components/transferAmountView/index.tsx | 82 ------------------- .../screens/confirmFtTransaction/index.tsx | 24 ------ .../signatureRequest/clarityMessageView.tsx | 1 + .../signatureRequest/collapsableContainer.tsx | 3 +- src/app/screens/signatureRequest/index.tsx | 1 + .../signatureRequestStructuredData.tsx | 2 +- 9 files changed, 6 insertions(+), 260 deletions(-) delete mode 100644 src/app/components/recipinetAddressView/index.tsx delete mode 100644 src/app/components/redirectAddressView/index.tsx delete mode 100644 src/app/components/transferAmountView/index.tsx diff --git a/src/app/components/confirmBtcTransactionComponent/inputOutputComponent.tsx b/src/app/components/confirmBtcTransactionComponent/inputOutputComponent.tsx index 3596bc38d..ce3555a4c 100644 --- a/src/app/components/confirmBtcTransactionComponent/inputOutputComponent.tsx +++ b/src/app/components/confirmBtcTransactionComponent/inputOutputComponent.tsx @@ -115,7 +115,7 @@ function InputOutputComponent({ from: { opacity: 0, height: 0 }, to: { opacity: isExpanded ? 1 : 0, - height: isExpanded ? 250 : 0, + height: isExpanded ? 'auto' : 0, }, }); diff --git a/src/app/components/recipinetAddressView/index.tsx b/src/app/components/recipinetAddressView/index.tsx deleted file mode 100644 index c7f5b7d8b..000000000 --- a/src/app/components/recipinetAddressView/index.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { useTranslation } from 'react-i18next'; -import styled from 'styled-components'; -import ArrowSquareOut from '@assets/img/arrow_square_out.svg'; -import { getExplorerUrl } from '@utils/helper'; -import { useBnsName } from '@hooks/queries/useBnsName'; -import useNetworkSelector from '@hooks/useNetwork'; - -const InfoContainer = styled.div((props) => ({ - display: 'flex', - flexDirection: 'column', - marginTop: props.theme.spacing(12), -})); - -const RowContainer = styled.div({ - display: 'flex', - flexDirection: 'row', -}); - -const AddressContainer = styled.div({ - display: 'flex', - flex: 1, -}); - -const TitleText = styled.h1((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white['400'], - textTransform: 'uppercase', -})); - -const ValueText = styled.h1((props) => ({ - ...props.theme.body_m, - marginTop: props.theme.spacing(2), - wordBreak: 'break-all', -})); - -const AssociatedAddressText = styled.h1((props) => ({ - ...props.theme.body_m, - marginTop: props.theme.spacing(2), - wordBreak: 'break-all', - color: props.theme.colors.white['400'], -})); - -const ButtonImage = styled.img((props) => ({ - marginRight: props.theme.spacing(3), - marginTop: props.theme.spacing(1), -})); - -const ActionButton = styled.button((props) => ({ - display: 'flex', - flexDirection: 'row', - backgroundColor: 'transparent', - marginLeft: props.theme.spacing(12), -})); - -interface Props { - recipient: string; -} -function RecipientAddressView({ recipient }: Props) { - const selectedNetwork = useNetworkSelector(); - const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); - const bnsName = useBnsName(recipient, selectedNetwork); - const handleOnPress = () => { - window.open(getExplorerUrl(recipient)); - }; - - return ( - - {t('RECIPIENT_ADDRESS')} - {bnsName} - - - {bnsName ? {recipient} : {recipient}} - - - - - - - ); -} - -export default RecipientAddressView; diff --git a/src/app/components/redirectAddressView/index.tsx b/src/app/components/redirectAddressView/index.tsx deleted file mode 100644 index edfa4d427..000000000 --- a/src/app/components/redirectAddressView/index.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import styled from 'styled-components'; -import GoToImage from '@assets/img/webInteractions/goto-explorer.svg'; -import { getExplorerUrl } from '@utils/helper'; - -const InfoContainer = styled.div((props) => ({ - display: 'flex', - flexDirection: 'column', - marginTop: props.theme.spacing(12), -})); - -const RowContainer = styled.div({ - display: 'flex', - flexDirection: 'row', -}); - -const AddressContainer = styled.div({ - display: 'flex', - flex: 1, -}); - -const TitleText = styled.h1((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white['400'], - textTransform: 'uppercase', -})); - -const ValueText = styled.h1((props) => ({ - ...props.theme.body_m, - marginTop: props.theme.spacing(2), - wordBreak: 'break-all', -})); - -const ButtonImage = styled.img((props) => ({ - marginRight: props.theme.spacing(3), - marginTop: props.theme.spacing(1), -})); - -const ActionButton = styled.button((props) => ({ - display: 'flex', - flexDirection: 'row', - backgroundColor: 'transparent', - marginLeft: props.theme.spacing(12), -})); - -interface Props { - recipient: string; - title?: string; -} -function RedirectAddressView({ recipient, title }: Props) { - const handleOnPress = () => { - window.open(getExplorerUrl(recipient)); - }; - - return ( - - {title} - - - {recipient} - - - - - - - ); -} - -export default RedirectAddressView; diff --git a/src/app/components/transferAmountView/index.tsx b/src/app/components/transferAmountView/index.tsx deleted file mode 100644 index bc6e9f5ae..000000000 --- a/src/app/components/transferAmountView/index.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import useWalletSelector from '@hooks/useWalletSelector'; -import { FungibleToken } from '@secretkeylabs/xverse-core'; -import { getFiatEquivalent } from '@secretkeylabs/xverse-core/transactions'; -import { getTicker } from '@utils/helper'; -import BigNumber from 'bignumber.js'; -import { useEffect, useState } from 'react'; -import { useTranslation } from 'react-i18next'; -import { NumericFormat } from 'react-number-format'; -import styled from 'styled-components'; - -const SendAmountContainer = styled.div({ - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center', -}); - -const TitleText = styled.h1((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white['400'], - textTransform: 'uppercase', -})); - -const AmountText = styled.h1((props) => ({ - ...props.theme.headline_category_m, - textTransform: 'uppercase', - fontSize: 28, -})); - -const FiatAmountText = styled.h1((props) => ({ - ...props.theme.body_m, - color: props.theme.colors.white['400'], -})); - -interface Props { - amount: BigNumber; - currency : string; - fungibleToken?: FungibleToken -} - -function TransferAmountView({ amount, currency, fungibleToken }: Props) { - const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); - const [fiatAmount, setFiatAmount] = useState('0'); - const { - stxBtcRate, btcFiatRate, fiatCurrency, - } = useWalletSelector(); - - function getFtTicker() { - if (fungibleToken?.ticker) { - return fungibleToken?.ticker.toUpperCase(); - } if (fungibleToken?.name) { - return getTicker(fungibleToken.name).toUpperCase(); - } return ''; - } - - useEffect(() => { - let amountInCurrency; - if (currency === 'FT') { - amountInCurrency = new BigNumber(amount).multipliedBy(fungibleToken?.tokenFiatRate!); - if (amountInCurrency.isLessThan(0.01)) { - amountInCurrency = '0.01'; - } - } else { amountInCurrency = getFiatEquivalent(Number(amount), currency, new BigNumber(stxBtcRate), new BigNumber(btcFiatRate), fungibleToken); } - setFiatAmount(amountInCurrency); - }, [amount]); - - return ( - - {t('INDICATION')} - {value}} - /> - {`~ $ ${fiatAmount} ${fiatCurrency}`} - - ); -} - -export default TransferAmountView; diff --git a/src/app/screens/confirmFtTransaction/index.tsx b/src/app/screens/confirmFtTransaction/index.tsx index 975399cf9..113d1cb9d 100644 --- a/src/app/screens/confirmFtTransaction/index.tsx +++ b/src/app/screens/confirmFtTransaction/index.tsx @@ -1,14 +1,10 @@ import { useTranslation } from 'react-i18next'; -import styled from 'styled-components'; import { useMutation } from '@tanstack/react-query'; import { useEffect } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { StacksTransaction } from '@secretkeylabs/xverse-core/types'; import { broadcastSignedTransaction } from '@secretkeylabs/xverse-core/transactions'; import BottomBar from '@components/tabBar'; -import { fetchStxWalletDataRequestAction } from '@stores/wallet/actions/actionCreators'; -import RecipientAddressView from '@components/recipinetAddressView'; -import TransferAmountView from '@components/transferAmountView'; import ConfirmStxTransationComponent from '@components/confirmStxTransactionComponent'; import TopRow from '@components/topRow'; import useNetworkSelector from '@hooks/useNetwork'; @@ -18,26 +14,6 @@ import TransferMemoView from '@components/confirmStxTransactionComponent/transfe import useStxWalletData from '@hooks/queries/useStxWalletData'; import useWalletSelector from '@hooks/useWalletSelector'; -const InfoContainer = styled.div((props) => ({ - display: 'flex', - flexDirection: 'column', - marginTop: props.theme.spacing(12), - paddingBottom: props.theme.spacing(12), - borderBottom: `1px solid ${props.theme.colors.background.elevation3}`, -})); - -const TitleText = styled.h1((props) => ({ - ...props.theme.headline_category_s, - color: props.theme.colors.white['400'], - textTransform: 'uppercase', -})); - -const ValueText = styled.h1((props) => ({ - ...props.theme.body_m, - marginTop: props.theme.spacing(2), - wordBreak: 'break-all', -})); - function ConfirmFtTransaction() { const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); const navigate = useNavigate(); diff --git a/src/app/screens/signatureRequest/clarityMessageView.tsx b/src/app/screens/signatureRequest/clarityMessageView.tsx index 4a52ba1c8..07f1a3ea3 100644 --- a/src/app/screens/signatureRequest/clarityMessageView.tsx +++ b/src/app/screens/signatureRequest/clarityMessageView.tsx @@ -12,6 +12,7 @@ const Container = styled.div<{ isRoot: boolean }>((props) => ({ const ContentContainer = styled.div({ display: 'flex', alignItems: 'center', + overflow: 'hidden', }); const ClarityValueText = styled.p((props) => ({ diff --git a/src/app/screens/signatureRequest/collapsableContainer.tsx b/src/app/screens/signatureRequest/collapsableContainer.tsx index e75e3c8c6..bd7120032 100644 --- a/src/app/screens/signatureRequest/collapsableContainer.tsx +++ b/src/app/screens/signatureRequest/collapsableContainer.tsx @@ -74,8 +74,9 @@ export default function CollapsableContainer(props: Props) { const concatenatedText = `${text.substring(0, 35)}...`; setInfoText(concatenatedText); } else { - setShowArrow(true); + setShowArrow(false); } + if (text === '') setShowArrow(true); }); const slideInStyles = useSpring({ diff --git a/src/app/screens/signatureRequest/index.tsx b/src/app/screens/signatureRequest/index.tsx index b4be1f033..4d98980da 100644 --- a/src/app/screens/signatureRequest/index.tsx +++ b/src/app/screens/signatureRequest/index.tsx @@ -57,6 +57,7 @@ const MessageHash = styled.p((props) => ({ const ActionDisclaimer = styled.p((props) => ({ ...props.theme.body_m, color: props.theme.colors.white[400], + marginTop: props.theme.spacing(4), marginBottom: props.theme.spacing(8), })); diff --git a/src/app/screens/signatureRequest/signatureRequestStructuredData.tsx b/src/app/screens/signatureRequest/signatureRequestStructuredData.tsx index 757d895d1..e3dce075b 100644 --- a/src/app/screens/signatureRequest/signatureRequestStructuredData.tsx +++ b/src/app/screens/signatureRequest/signatureRequestStructuredData.tsx @@ -26,7 +26,7 @@ export default function SignatureRequestStructuredData(props: SignatureRequestSt const { t } = useTranslation('translation', { keyPrefix: 'SIGNATURE_REQUEST' }); const { payload } = props; return ( - + Date: Mon, 17 Apr 2023 00:58:31 +0500 Subject: [PATCH 11/26] add ui for oridnal check --- src/app/components/AlertMessage/index.tsx | 4 +- .../confirmBtcTransactionComponent/index.tsx | 9 ++- src/app/components/infoContainer/index.tsx | 45 +++++++++-- src/app/components/sendForm/index.tsx | 11 +-- src/app/routes/index.tsx | 6 +- .../screens/confirmBtcTransaction/index.tsx | 81 ++++++++++++++++--- src/app/screens/restoreFunds/index.tsx | 4 +- src/app/screens/settings/index.tsx | 3 +- src/locales/en.json | 10 ++- 9 files changed, 131 insertions(+), 42 deletions(-) diff --git a/src/app/components/AlertMessage/index.tsx b/src/app/components/AlertMessage/index.tsx index 4cc02d33b..49885c13f 100644 --- a/src/app/components/AlertMessage/index.tsx +++ b/src/app/components/AlertMessage/index.tsx @@ -110,6 +110,7 @@ interface Props { description: string; buttonText?: string; secondButtonText?: string; + isWarningAlert?: boolean; tickMarkButtonText?: string; onButtonClick?: () => void; onSecondButtonClick?: () => void; @@ -118,7 +119,7 @@ interface Props { } function AlertMessage({ - onClose, title, description, buttonText, secondButtonText, tickMarkButtonText, onButtonClick, onSecondButtonClick, tickMarkButtonClick, + onClose, title, description, buttonText, secondButtonText, tickMarkButtonText, isWarningAlert, onButtonClick, onSecondButtonClick, tickMarkButtonClick, }: Props) { return ( <> @@ -143,6 +144,7 @@ function AlertMessage({ )} diff --git a/src/app/components/confirmBtcTransactionComponent/index.tsx b/src/app/components/confirmBtcTransactionComponent/index.tsx index 65f589ea5..4ea82ec97 100644 --- a/src/app/components/confirmBtcTransactionComponent/index.tsx +++ b/src/app/components/confirmBtcTransactionComponent/index.tsx @@ -164,7 +164,8 @@ function ConfirmBtcTransactionComponent({ network.type, new BigNumber(txFee), )); - +console.log("recopients") +console.log(recipients[0].amountSats.toString()) const { isLoading: isLoadingNonOrdinalBtcSend, error: errorSigningNonOrdial, @@ -299,16 +300,16 @@ function ConfirmBtcTransactionComponent({ title={t('CONFIRM_TRANSACTION.ASSET')} /> ) : ( - recipients?.map((recipient, index) => ( + recipients?.map((recipient :Recipient, index) => ( diff --git a/src/app/components/infoContainer/index.tsx b/src/app/components/infoContainer/index.tsx index 1ef1d73ca..653a4f9ed 100644 --- a/src/app/components/infoContainer/index.tsx +++ b/src/app/components/infoContainer/index.tsx @@ -2,12 +2,16 @@ import styled from 'styled-components'; import InfoIcon from '@assets/img/info.svg'; import WarningIcon from '@assets/img/Warning.svg'; -const Container = styled.div<{ type: 'Info' | 'Warning' | undefined }>((props) => ({ +interface ContainerProps { + type: 'Info' | 'Warning' | undefined; + showWarningBackground?: boolean; +} +const Container = styled.div((props) => ({ display: 'flex', flexDirection: 'row', borderRadius: 12, alignItems: 'flex-start', - backgroundColor: 'transparent', + backgroundColor: props.showWarningBackground ? 'rgba(211, 60, 60, 0.15)' : 'transparent', padding: props.theme.spacing(8), marginBottom: props.theme.spacing(6), border: `1px solid ${ @@ -26,6 +30,11 @@ const BoldText = styled.h1((props) => ({ color: props.theme.colors.white['0'], })); +const RedirectText = styled.h1((props) => ({ + ...props.theme.body_medium_m, + color: props.theme.colors.white['0'], +})); + const SubText = styled.h1((props) => ({ ...props.theme.body_xs, marginTop: props.theme.spacing(2), @@ -38,15 +47,34 @@ const Text = styled.h1((props) => ({ lineHeight: 1.4, })); +const RedirectButton = styled.button((props) => ({ + backgroundColor: 'transparent', + color: props.theme.colors.white['0'], + display: 'flex', + marginTop: 4, + justifyContent: 'flex-start', + alignItems: 'flex-start', +})); + interface Props { titleText?: string; bodyText: string; type?: 'Info' | 'Warning'; + onClick?: () => void; + redirectText?: string; + showWarningBackground?: boolean; } -function InfoContainer({ titleText, bodyText, type }: Props) { +function InfoContainer({ + titleText, + bodyText, + type, + redirectText, + onClick, + showWarningBackground, +}: Props) { return ( - + alert {titleText ? ( @@ -55,7 +83,14 @@ function InfoContainer({ titleText, bodyText, type }: Props) { {bodyText} ) : ( - {bodyText} + <> + {bodyText} + {redirectText && ( + + {`${redirectText} →`} + + )} + )} diff --git a/src/app/components/sendForm/index.tsx b/src/app/components/sendForm/index.tsx index cd5aea25e..856b8ca7e 100644 --- a/src/app/components/sendForm/index.tsx +++ b/src/app/components/sendForm/index.tsx @@ -438,16 +438,7 @@ function SendForm({ }; const buyCryptoMessage = balance === 0 && (currencyType === 'STX' || currencyType === 'BTC') && ( - - alert - - {t('NO_FUNDS')} - - {t('BUY_CRYPTO')} - - - - + ); const checkIfEnableButton = () => { diff --git a/src/app/routes/index.tsx b/src/app/routes/index.tsx index 2315d8e8a..9ae112896 100644 --- a/src/app/routes/index.tsx +++ b/src/app/routes/index.tsx @@ -183,15 +183,15 @@ const router = createHashRouter([ element: , }, { - path: 'settings/restore-funds', + path: 'restore-funds', element: , }, { - path: 'settings/restore-funds/btc', + path: 'recover-btc', element: , }, { - path: 'settings/restore-funds/ordinals', + path: 'recover-ordinals', element: , }, { diff --git a/src/app/screens/confirmBtcTransaction/index.tsx b/src/app/screens/confirmBtcTransaction/index.tsx index 098ee1477..5e3eb85ea 100644 --- a/src/app/screens/confirmBtcTransaction/index.tsx +++ b/src/app/screens/confirmBtcTransaction/index.tsx @@ -1,7 +1,10 @@ import { useNavigate, useLocation } from 'react-router-dom'; import { useEffect, useState } from 'react'; import { useMutation } from '@tanstack/react-query'; -import { broadcastRawBtcOrdinalTransaction, broadcastRawBtcTransaction } from '@secretkeylabs/xverse-core/api'; +import { + broadcastRawBtcOrdinalTransaction, + broadcastRawBtcTransaction, +} from '@secretkeylabs/xverse-core/api'; import { BtcTransactionBroadcastResponse } from '@secretkeylabs/xverse-core/types'; import BottomBar from '@components/tabBar'; import useBtcWalletData from '@hooks/queries/useBtcWalletData'; @@ -9,6 +12,11 @@ import useWalletSelector from '@hooks/useWalletSelector'; import ConfirmBtcTransactionComponent from '@components/confirmBtcTransactionComponent'; import styled from 'styled-components'; import { saveTimeForNonOrdinalTransferTransaction } from '@utils/localStorage'; +import InfoContainer from '@components/infoContainer'; +import { useTranslation } from 'react-i18next'; +import useOrdinalsByAddress from '@hooks/useOrdinalsByAddress'; +import useNonOrdinalUtxos from '@hooks/useNonOrdinalUtxo'; +import AlertMessage from '@components/alertMessage'; const BottomBarContainer = styled.h1((props) => ({ marginTop: props.theme.spacing(5), @@ -16,10 +24,17 @@ const BottomBarContainer = styled.h1((props) => ({ function ConfirmBtcTransaction() { const navigate = useNavigate(); - const { network, ordinalsAddress } = useWalletSelector(); + const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); + const { network, ordinalsAddress, btcAddress } = useWalletSelector(); const [recipientAddress, setRecipientAddress] = useState(''); + const [signedTx, setSignedTx] = useState(''); + const [showOrdinalsDetectedAlert, setShowOrdinalsDetectedAlert] = useState(false); const location = useLocation(); const { refetch } = useBtcWalletData(); + const { + ordinals: ordinalsInBtc, + } = useOrdinalsByAddress(btcAddress); + const { unspentUtxos: withdrawOridnalsUtxos } = useNonOrdinalUtxos(); const { fee, amount, signedTxHex, recipient, isRestoreFundFlow, unspentUtxos, } = location.state; @@ -36,12 +51,15 @@ function ConfirmBtcTransaction() { error: errorBtcOrdinalTransaction, data: btcOrdinalTxBroadcastData, mutate: broadcastOrdinalTransaction, - } = useMutation( - async ({ signedTx }) => broadcastRawBtcOrdinalTransaction( - signedTx, - network.type, - ), - ); + } = useMutation(async ({ signedTx }) => broadcastRawBtcOrdinalTransaction(signedTx, network.type)); + + const onClick = () => { + navigate('/recover-ordinals'); + }; + + const onContinueButtonClick = () => { + mutate({ signedTx }); + }; useEffect(() => { if (errorBtcOrdinalTransaction) { @@ -55,6 +73,15 @@ function ConfirmBtcTransaction() { }); } }, [errorBtcOrdinalTransaction]); +console.log(fee) +console.log(amount) +console.log(recipient) + useEffect(() => { + if (!fee && !amount) { + console.log('inside'); + navigate('/send-btc'); + } + }); useEffect(() => { setRecipientAddress(location.state.recipientAddress); @@ -108,9 +135,10 @@ function ConfirmBtcTransaction() { const handleOnConfirmClick = (txHex: string) => { if (isRestoreFundFlow) { broadcastOrdinalTransaction({ signedTx: txHex }); - } else { - mutate({ signedTx: txHex }); - } + } else if (ordinalsInBtc && ordinalsInBtc.length > 0) { + setSignedTx(txHex); + setShowOrdinalsDetectedAlert(true); + } else mutate({ signedTx: txHex }); }; const goBackToScreen = () => { @@ -125,8 +153,26 @@ function ConfirmBtcTransaction() { }); } }; + + const onClosePress = () => { + setShowOrdinalsDetectedAlert(false); + }; + return ( <> + {showOrdinalsDetectedAlert && ( + + )} + + > + {ordinalsInBtc && ordinalsInBtc.length > 0 && ( + + )} + - ); } diff --git a/src/app/screens/restoreFunds/index.tsx b/src/app/screens/restoreFunds/index.tsx index 4e13bbd34..60fa45566 100644 --- a/src/app/screens/restoreFunds/index.tsx +++ b/src/app/screens/restoreFunds/index.tsx @@ -34,7 +34,7 @@ function RestoreFunds() { }; const handleOnRestoreBtcClick = () => { - navigate('btc', { + navigate('/recover-btc', { state: { unspentUtxos, }, @@ -42,7 +42,7 @@ function RestoreFunds() { }; const handleOnRestoreOridnalClick = () => { - navigate('ordinals'); + navigate('/recover-ordinals'); }; return ( diff --git a/src/app/screens/settings/index.tsx b/src/app/screens/settings/index.tsx index f8fe4d715..45dddaa85 100644 --- a/src/app/screens/settings/index.tsx +++ b/src/app/screens/settings/index.tsx @@ -65,7 +65,6 @@ function Setting() { const { unlockWallet, resetWallet } = useWalletReducer(); const { unspentUtxos, - isLoading, } = useNonOrdinalUtxos(); const openTermsOfService = () => { @@ -123,7 +122,7 @@ function Setting() { }; const onRestoreFundClick = () => { - navigate('restore-funds', { + navigate('/restore-funds', { state: { unspentUtxos, }, diff --git a/src/locales/en.json b/src/locales/en.json index f31987001..3c65d5282 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -58,7 +58,7 @@ "MEMO_INFO": "Adding a memo can have an impact on the transaction fee", "NEXT": "Next", "NO_FUNDS": "You don’t have any funds to send.", - "BUY_CRYPTO": "Buy crypto →", + "BUY_CRYPTO": "Buy crypto", "MOVE_TO_ASSET_DETAIL": "Back to asset detail", "ERRORS": { "ADDRESS_REQUIRED": "Recipient address is required", @@ -112,7 +112,13 @@ "PSBT_CANT_PARSE_ERROR_DESCRIPTION": "The requested transaction is invalid and cannot be processed please contact the developer of the requesting app for support", "PSBT_CANT_SIGN_ERROR_TITLE": "Failed to sign transaction", "YOU_WILL_TRANSFER": "You will transfer", - "YOU_WILL_RECEIVE": "You will receive" + "YOU_WILL_RECEIVE": "You will receive", + "ORDINAL_DETECTED_WARNING": "Ordinal inscription detected in transaction. Continuing will cause your ordinal to be transferred away.", + "ORDINAL_DETECTED_ACTION": "Move to my ordinals address", + "BTC_TRANSFER_DANGER_ALERT_TITLE": "Danger", + "BTC_TRANSFER_DANGER_ALERT_DESC": "You are about to make a Bitcoin transfer which contains an ordinal inscription. Once transferred out of the wallet, you will not be able to recover them.", + "CONITNUE": "Continue", + "BACK": "Back" }, "TX_ERRORS": { "INSUFFICIENT_BALANCE": "Insufficient balance", From 4d9093521525a570d2c49f5ce17fb5dcda3b7379 Mon Sep 17 00:00:00 2001 From: Imamah-Zafar Date: Mon, 17 Apr 2023 12:50:38 +0500 Subject: [PATCH 12/26] remove console.log --- src/app/components/confirmBtcTransactionComponent/index.tsx | 5 ++--- src/app/screens/confirmBtcTransaction/index.tsx | 5 +---- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/app/components/confirmBtcTransactionComponent/index.tsx b/src/app/components/confirmBtcTransactionComponent/index.tsx index 4ea82ec97..8c8f06188 100644 --- a/src/app/components/confirmBtcTransactionComponent/index.tsx +++ b/src/app/components/confirmBtcTransactionComponent/index.tsx @@ -164,8 +164,7 @@ function ConfirmBtcTransactionComponent({ network.type, new BigNumber(txFee), )); -console.log("recopients") -console.log(recipients[0].amountSats.toString()) + const { isLoading: isLoadingNonOrdinalBtcSend, error: errorSigningNonOrdial, @@ -330,7 +329,7 @@ console.log(recipients[0].amountSats.toString()) { if (!fee && !amount) { - console.log('inside'); navigate('/send-btc'); } }); From 68cd8c38bc736de6803627dcdf481a5c2a06f863 Mon Sep 17 00:00:00 2001 From: Imamah-Zafar Date: Tue, 18 Apr 2023 12:07:24 +0500 Subject: [PATCH 13/26] fix amount value --- package-lock.json | 1470 ++++++++--------- .../confirmBtcTransactionComponent/index.tsx | 6 +- .../screens/confirmBtcTransaction/index.tsx | 10 +- 3 files changed, 710 insertions(+), 776 deletions(-) diff --git a/package-lock.json b/package-lock.json index 780f42c6e..74b94514b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -116,12 +116,12 @@ "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==" }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -129,9 +129,9 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -140,30 +140,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", - "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-compilation-targets": "^7.20.7", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-module-transforms": "^7.21.2", "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.3", + "@babel/parser": "^7.21.4", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.3", - "@babel/types": "^7.21.3", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -179,11 +179,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "dependencies": { - "@babel/types": "^7.21.3", + "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -192,19 +192,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", @@ -217,13 +204,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -267,11 +254,11 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.21.4" }, "engines": { "node": ">=6.9.0" @@ -381,9 +368,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -452,12 +439,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -554,12 +541,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -678,18 +665,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -698,9 +685,9 @@ } }, "node_modules/@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -763,9 +750,9 @@ } }, "node_modules/@emotion/cache": { - "version": "11.10.5", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", - "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "version": "11.10.7", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.7.tgz", + "integrity": "sha512-VLl1/2D6LOjH57Y8Vem1RoZ9haWF4jesHDGiHtKozDQuBIkJm2gimVo0I02sWCuzZtVACeixTVB4jeE8qvCBoQ==", "dependencies": { "@emotion/memoize": "^0.8.0", "@emotion/sheet": "^1.2.1", @@ -935,16 +922,16 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.5.tgz", - "integrity": "sha512-qrcbyfnRVziRlB6IYwjCopYhO7Vud750JlJyuljruIXcPxr22y8zdckcJGsuOdnQ639uVD1tTXddrcH3t3QYIQ==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz", + "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" }, "node_modules/@floating-ui/dom": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.5.tgz", - "integrity": "sha512-+sAUfpQ3Frz+VCbPCqj+cZzvEESy3fjSeT/pDWkYCWOBXYNNKZfuVsHuv8/JO2zze8+Eb/Q7a6hZVgzS81fLbQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.6.tgz", + "integrity": "sha512-02vxFDuvuVPs22iJICacezYJyf7zwwOCWkPNkWNBr1U0Qt1cKFYzWvxts0AmqcOQGwt/3KJWcWIgtbUU38keyw==", "dependencies": { - "@floating-ui/core": "^1.2.4" + "@floating-ui/core": "^1.2.6" } }, "node_modules/@humanwhocodes/config-array": { @@ -1739,13 +1726,13 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -1768,43 +1755,34 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -1812,9 +1790,9 @@ "dev": true }, "node_modules/@noble/curves": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.8.3.tgz", - "integrity": "sha512-OqaOf4RWDaCRuBKJLDURrgVxjLmneGsiCXGuzYB5y95YithZMA6w4uk34DHSm0rKMrrYiaeZj48/81EvaAScLQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", + "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", "funding": [ { "type": "individual", @@ -1950,26 +1928,26 @@ } }, "node_modules/@react-spring/animated": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.1.tgz", - "integrity": "sha512-EX5KAD9y7sD43TnLeTNG1MgUVpuRO1YaSJRPawHNRgUWYfILge3s85anny4S4eTJGpdp5OoFV2kx9fsfeo0qsw==", + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.2.tgz", + "integrity": "sha512-ipvleJ99ipqlnHkz5qhSsgf/ny5aW0ZG8Q+/2Oj9cI7LCc7COdnrSO6V/v8MAX3JOoQNzfz6dye2s5Pt5jGaIA==", "dependencies": { - "@react-spring/shared": "~9.7.1", - "@react-spring/types": "~9.7.1" + "@react-spring/shared": "~9.7.2", + "@react-spring/types": "~9.7.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@react-spring/core": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.1.tgz", - "integrity": "sha512-8K9/FaRn5VvMa24mbwYxwkALnAAyMRdmQXrARZLcBW2vxLJ6uw9Cy3d06Z8M12kEqF2bDlccaCSDsn2bSz+Q4A==", + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.2.tgz", + "integrity": "sha512-fF512edZT/gKVCA90ZRxfw1DmELeVwiL4OC2J6bMUlNr707C0h4QRoec6DjzG27uLX2MvS1CEatf9KRjwZR9/w==", "dependencies": { - "@react-spring/animated": "~9.7.1", - "@react-spring/rafz": "~9.7.1", - "@react-spring/shared": "~9.7.1", - "@react-spring/types": "~9.7.1" + "@react-spring/animated": "~9.7.2", + "@react-spring/rafz": "~9.7.2", + "@react-spring/shared": "~9.7.2", + "@react-spring/types": "~9.7.2" }, "funding": { "type": "opencollective", @@ -1980,36 +1958,36 @@ } }, "node_modules/@react-spring/rafz": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.1.tgz", - "integrity": "sha512-JSsrRfbEJvuE3w/uvU3mCTuWwpQcBXkwoW14lBgzK9XJhuxmscGo59AgJUpFkGOiGAVXFBGB+nEXtSinFsopgw==" + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.2.tgz", + "integrity": "sha512-kDWMYDQto3+flkrX3vy6DU/l9pxQ4TVW91DglQEc11iDc7shF4+WVDRJvOVLX+xoMP7zyag1dMvlIgvQ+dvA/A==" }, "node_modules/@react-spring/shared": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.1.tgz", - "integrity": "sha512-R2kZ+VOO6IBeIAYTIA3C1XZ0ZVg/dDP5FKtWaY8k5akMer9iqf5H9BU0jyt3Qtxn0qQY7whQdf6MTcWtKeaawg==", + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.2.tgz", + "integrity": "sha512-6U9qkno+9DxlH5nSltnPs+kU6tYKf0bPLURX2te13aGel8YqgcpFYp5Av8DcN2x3sukinAsmzHUS/FRsdZMMBA==", "dependencies": { - "@react-spring/rafz": "~9.7.1", - "@react-spring/types": "~9.7.1" + "@react-spring/rafz": "~9.7.2", + "@react-spring/types": "~9.7.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@react-spring/types": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.1.tgz", - "integrity": "sha512-yBcyfKUeZv9wf/ZFrQszvhSPuDx6Py6yMJzpMnS+zxcZmhXPeOCKZSHwqrUz1WxvuRckUhlgb7eNI/x5e1e8CA==" + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.2.tgz", + "integrity": "sha512-GEflx2Ex/TKVMHq5g5MxQDNNPNhqg+4Db9m7+vGTm8ttZiyga7YQUF24shgRNebKIjahqCuei16SZga8h1pe4g==" }, "node_modules/@react-spring/web": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.1.tgz", - "integrity": "sha512-6uUE5MyKqdrJnIJqlDN/AXf3i8PjOQzUuT26nkpsYxUGOk7c+vZVPcfrExLSoKzTb9kF0i66DcqzO5fXz/Z1AA==", + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.2.tgz", + "integrity": "sha512-7qNc7/5KShu2D05x7o2Ols2nUE7mCKfKLaY2Ix70xPMfTle1sZisoQMBFgV9w/fSLZlHZHV9P0uWJqEXQnbV4Q==", "dependencies": { - "@react-spring/animated": "~9.7.1", - "@react-spring/core": "~9.7.1", - "@react-spring/shared": "~9.7.1", - "@react-spring/types": "~9.7.1" + "@react-spring/animated": "~9.7.2", + "@react-spring/core": "~9.7.2", + "@react-spring/shared": "~9.7.2", + "@react-spring/types": "~9.7.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", @@ -2017,9 +1995,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.4.0.tgz", - "integrity": "sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", + "integrity": "sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==", "engines": { "node": ">=14" } @@ -2036,9 +2014,9 @@ ] }, "node_modules/@scure/bip32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.2.0.tgz", - "integrity": "sha512-O+vT/hBVk+ag2i6j2CDemwd1E1MtGt+7O1KzrPNsaNvSsiEK55MyPIxJIMI2PS8Ijj464B2VbQlpRoQXxw1uHg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", + "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", "funding": [ { "type": "individual", @@ -2046,7 +2024,7 @@ } ], "dependencies": { - "@noble/curves": "~0.8.3", + "@noble/curves": "~1.0.0", "@noble/hashes": "~1.3.0", "@scure/base": "~1.1.0" } @@ -2770,20 +2748,20 @@ } }, "node_modules/@tanstack/query-core": { - "version": "4.27.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.27.0.tgz", - "integrity": "sha512-sm+QncWaPmM73IPwFlmWSKPqjdTXZeFf/7aEmWh00z7yl2FjqophPt0dE1EHW9P1giMC5rMviv7OUbSDmWzXXA==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.29.1.tgz", + "integrity": "sha512-vkPewLEG8ua0efo3SsVT0BcBtkq5RZX8oPhDAyKL+k/rdOYSQTEocfGEXSaBwIwsXeOGBUpfKqI+UmHvNqdWXg==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/query-persist-client-core": { - "version": "4.27.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-persist-client-core/-/query-persist-client-core-4.27.0.tgz", - "integrity": "sha512-A+dPA7zG0MJOMDeBc/2WcKXW4wV2JMkeBVydobPW9G02M4q0yAj7vI+7SmM2dFuXyIvxXp4KulCywN6abRKDSQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-persist-client-core/-/query-persist-client-core-4.29.1.tgz", + "integrity": "sha512-lC7YsXHdHygVCHDXJqwaLGoWOHSfX+YEhwRaSWMBcHrfsHyEFzAvluQJlDytVd6JFAe49IuLJlajMGBbyI00ZA==", "dependencies": { - "@tanstack/query-core": "4.27.0" + "@tanstack/query-core": "4.29.1" }, "funding": { "type": "github", @@ -2791,11 +2769,11 @@ } }, "node_modules/@tanstack/query-sync-storage-persister": { - "version": "4.27.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.27.1.tgz", - "integrity": "sha512-vClLXtyQZwfV8QTyxqfkEzZSuwIKnrxORAUyxvCDna1M9xao0HtKYsChPVaJoSZ42PNGGvKCiKdg4kfyLeWj+A==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.29.1.tgz", + "integrity": "sha512-rX0bPgqhkz71HEQIz47Z3IFxs2fg7dO9uoxkjwo50VljrhXMl6Yv77xCeKYL97fNX7zhuMkax8HEy953woJ/QA==", "dependencies": { - "@tanstack/query-persist-client-core": "4.27.0" + "@tanstack/query-persist-client-core": "4.29.1" }, "funding": { "type": "github", @@ -2803,11 +2781,11 @@ } }, "node_modules/@tanstack/react-query": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.28.0.tgz", - "integrity": "sha512-8cGBV5300RHlvYdS4ea+G1JcZIt5CIuprXYFnsWggkmGoC0b5JaqG0fIX3qwDL9PTNkKvG76NGThIWbpXivMrQ==", + "version": "4.29.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.29.3.tgz", + "integrity": "sha512-FPQrMu7PbCgBcVzoRJm7WmQnAFv+LUgZM9KBZ7Vk/+yERH2BDLvQRuAgczQd5Tb1s3HbOktECRDaOkUxdyBAjw==", "dependencies": { - "@tanstack/query-core": "4.27.0", + "@tanstack/query-core": "4.29.1", "use-sync-external-store": "^1.2.0" }, "funding": { @@ -2829,18 +2807,18 @@ } }, "node_modules/@tanstack/react-query-persist-client": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-query-persist-client/-/react-query-persist-client-4.28.0.tgz", - "integrity": "sha512-xNpi3YdPOQIyYkKhByYDqTlyCeqICWFhV5PWkoVxYfzlRK6HYX4s+9Int407jEvhBz9cGC4OaL7rd6bynCFrYg==", + "version": "4.29.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-persist-client/-/react-query-persist-client-4.29.3.tgz", + "integrity": "sha512-yyQYr1cLxmakVdWOUV9U/7D4fLiIdtlFa18KIwUI1MSSRwvAjjdx6D4GSmsuLXL9eSudNMyvpy5iTAICv2+CoQ==", "dependencies": { - "@tanstack/query-persist-client-core": "4.27.0" + "@tanstack/query-persist-client-core": "4.29.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "@tanstack/react-query": "4.28.0" + "@tanstack/react-query": "4.29.3" } }, "node_modules/@testing-library/dom": { @@ -3246,9 +3224,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.21.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", - "integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -3266,9 +3244,9 @@ } }, "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, "node_modules/@types/express": { @@ -3449,9 +3427,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.31", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.31.tgz", - "integrity": "sha512-EEG67of7DsvRDU6BLLI0p+k1GojDLz9+lZsnCpCRTa/lOokvyPBvp8S5x+A24hME3yyQuIipcP70KJ6H7Qupww==", + "version": "18.0.37", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.37.tgz", + "integrity": "sha512-4yaZZtkRN3ZIQD3KSEwkfcik8s0SWV+82dlJot1AbGYHCzJkWP3ENBY6wYeDRmKZ6HkrgoGAmR2HqdwYGp6OEw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3603,15 +3581,15 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.0.tgz", - "integrity": "sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz", + "integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.57.0", - "@typescript-eslint/type-utils": "5.57.0", - "@typescript-eslint/utils": "5.57.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/type-utils": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -3649,9 +3627,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3670,14 +3648,14 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.0.tgz", - "integrity": "sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", + "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.57.0", - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/typescript-estree": "5.57.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "debug": "^4.3.4" }, "engines": { @@ -3697,13 +3675,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz", - "integrity": "sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", + "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0" + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3714,13 +3692,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.57.0.tgz", - "integrity": "sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", + "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.57.0", - "@typescript-eslint/utils": "5.57.0", + "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -3741,9 +3719,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.0.tgz", - "integrity": "sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3754,13 +3732,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz", - "integrity": "sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -3793,9 +3771,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3814,17 +3792,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.57.0.tgz", - "integrity": "sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", + "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.57.0", - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/typescript-estree": "5.57.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -3852,9 +3830,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3873,12 +3851,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz", - "integrity": "sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/types": "5.59.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -4481,18 +4459,18 @@ } }, "node_modules/axe-core": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", - "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axios": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz", - "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.5.tgz", + "integrity": "sha512-glL/PvG/E+xCWwV8S6nCHcrfg1exGx7vxyUIivIA1iL7BIh6bePylCfVHwp6k13ao7SATxB6imau2kqY+I67kw==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -5024,14 +5002,14 @@ } }, "node_modules/babel-plugin-styled-components": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", - "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.1.tgz", + "integrity": "sha512-c8lJlszObVQPguHkI+akXv8+Jgb9Ccujx0EetL7oIvwU100LxO6XAGe45qry37wUL40a5U9f23SYrivro2XKhA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.0", "@babel/helper-module-imports": "^7.16.0", "babel-plugin-syntax-jsx": "^6.18.0", - "lodash": "^4.17.11", + "lodash": "^4.17.21", "picomatch": "^2.3.0" }, "peerDependencies": { @@ -6178,9 +6156,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001472", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001472.tgz", - "integrity": "sha512-xWC/0+hHHQgj3/vrKYY0AAzeIUgr7L9wlELIcAvZdDUHlhL/kNxMdnQLOSOQfP8R51ZzPhmHdyMkI0MMpmxCfg==", + "version": "1.0.30001480", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz", + "integrity": "sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==", "dev": true, "funding": [ { @@ -6303,9 +6281,9 @@ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, "node_modules/clean-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", - "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", "dev": true, "dependencies": { "source-map": "~0.6.0" @@ -6393,9 +6371,9 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/colornames": { @@ -6415,12 +6393,12 @@ } }, "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { - "node": "^12.20.0 || >=14" + "node": ">=14" } }, "node_modules/common-path-prefix": { @@ -6601,9 +6579,9 @@ } }, "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, "dependencies": { "dir-glob": "^3.0.1", @@ -6626,15 +6604,15 @@ "dev": true }, "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -6665,9 +6643,9 @@ "hasInstallScript": true }, "node_modules/core-js-pure": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.29.1.tgz", - "integrity": "sha512-4En6zYVi0i0XlXHVz/bi6l1XDjCqkKRq765NXuX+SnaIatlE96Odt5lMLjdxUiNI1v9OXI5DSLWYPlmTfkTktg==", + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.1.tgz", + "integrity": "sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg==", "dev": true, "hasInstallScript": true, "funding": { @@ -6856,9 +6834,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6956,9 +6934,9 @@ "dev": true }, "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -7447,9 +7425,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.342", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.342.tgz", - "integrity": "sha512-dTei3VResi5bINDENswBxhL+N0Mw5YnfWyTqO75KGsVldurEkhC9+CelJVAse8jycWyP8pv3VSj4BSyP8wTWJA==", + "version": "1.4.367", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.367.tgz", + "integrity": "sha512-mNuDxb+HpLhPGUKrg0hSxbTjHWw8EziwkwlJNkFUj3W60ypigLDRVz04vU+VRsJPi8Gub+FDhYUpuTm9xiEwRQ==", "dev": true }, "node_modules/elliptic": { @@ -7531,9 +7509,9 @@ } }, "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { "node": ">=0.12" @@ -7651,9 +7629,9 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", "dev": true }, "node_modules/es-set-tostringtag": { @@ -7934,9 +7912,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -8262,9 +8240,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -8272,6 +8250,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/globals": { @@ -9343,14 +9324,14 @@ } }, "node_modules/html-minifier-terser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.1.0.tgz", - "integrity": "sha512-BvPO2S7Ip0Q5qt+Y8j/27Vclj6uHC6av0TMoDn7/bJPhMWHI2UtR2e/zEgJn3/qYAmxumrGp9q4UHurL6mtW9Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", "dev": true, "dependencies": { "camel-case": "^4.1.2", - "clean-css": "5.2.0", - "commander": "^9.4.1", + "clean-css": "~5.3.2", + "commander": "^10.0.0", "entities": "^4.4.0", "param-case": "^3.0.4", "relateurl": "^0.2.7", @@ -9372,9 +9353,9 @@ } }, "node_modules/html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", + "integrity": "sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==", "dev": true, "dependencies": { "@types/html-minifier-terser": "^6.0.0", @@ -9394,18 +9375,6 @@ "webpack": "^5.20.0" } }, - "node_modules/html-webpack-plugin/node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, "node_modules/html-webpack-plugin/node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -9436,15 +9405,6 @@ "node": ">=12" } }, - "node_modules/html-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", @@ -9856,9 +9816,9 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "dependencies": { "has": "^1.0.3" }, @@ -11734,9 +11694,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -12483,9 +12443,9 @@ } }, "node_modules/memfs": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.0.tgz", + "integrity": "sha512-yK6o8xVJlQerz57kvPROwTMgx5WtGwC2ZxDtOUsnGl49rHjYkfQoPNZPCKH73VdLE1BwBu/+Fx/NL8NYMUw2aA==", "dev": true, "dependencies": { "fs-monkey": "^1.0.3" @@ -12605,6 +12565,7 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.7.3.tgz", "integrity": "sha512-z2dl235V3SFA6EveV/+oCAa9pAgyxxU1pUckS/FTXh5m3IyV0XRr2+NKM+HOJkyH//2DZM5DYZY0kxefU5c1qA==", + "deprecated": "Upgrade to 1.0.0 or higher for audited version", "funding": [ { "type": "individual", @@ -12947,9 +12908,9 @@ } }, "node_modules/nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz", + "integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==", "dev": true }, "node_modules/object-assign": { @@ -13527,9 +13488,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.22.tgz", + "integrity": "sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==", "dev": true, "funding": [ { @@ -13539,10 +13500,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -14020,9 +13985,9 @@ } }, "node_modules/rc-motion": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.6.3.tgz", - "integrity": "sha512-xFLkes3/7VL/J+ah9jJruEW/Akbx5F6jVa2wG5o/ApGKQKSOd5FR3rseHLL9+xtJg4PmCwo6/1tqhDO/T+jFHA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.7.0.tgz", + "integrity": "sha512-gszH/FPVtQ3eb+02Mcqr1PLY36w+Hqkb5jN5t89gKJYK854Lz4TrIgnOxx4+KXeWgvQ/lrLp3yzCYCIzuihWRA==", "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -14034,9 +13999,9 @@ } }, "node_modules/rc-util": { - "version": "5.29.2", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.29.2.tgz", - "integrity": "sha512-xHT9Dr3RD6tyvCibnH10l3mudC6TJjWNr9UDy3CrOGZqTY354OfdwP87ahKNe0b3A1dsysDldvx0SBuswhlOeA==", + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.30.0.tgz", + "integrity": "sha512-uaWpF/CZGyXuhQG71MWxkU+0bWkPEgqZUxEv251Cu7p3kpHDNm5+Ygu/U8ux0a/zbfGW8PsKcJL0XVBOMrlIZg==", "dependencies": { "@babel/runtime": "^7.18.3", "react-is": "^16.12.0" @@ -14219,9 +14184,9 @@ } }, "node_modules/react-refresh-typescript": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/react-refresh-typescript/-/react-refresh-typescript-2.0.8.tgz", - "integrity": "sha512-7zsaM8jIpUZ2hxMdTo9GNZRauTI11AD5YNNaNXVGb8mtYVwdSbc6IQV8YaHevSWYbx+ZpZispezdCfaJuTrh3w==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/react-refresh-typescript/-/react-refresh-typescript-2.0.9.tgz", + "integrity": "sha512-chAnOO4vpxm/3WkgOVmti+eN8yUtkJzeGkOigV6UA9eDFz12W34e/SsYe2H5+RwYJ3+sfSZkVbiXcG1chEBxlg==", "dev": true, "peerDependencies": { "react-refresh": "0.10.x || 0.11.x || 0.12.x || 0.13.x || 0.14.x", @@ -14229,11 +14194,11 @@ } }, "node_modules/react-router": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.9.0.tgz", - "integrity": "sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.10.0.tgz", + "integrity": "sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==", "dependencies": { - "@remix-run/router": "1.4.0" + "@remix-run/router": "1.5.0" }, "engines": { "node": ">=14" @@ -14243,12 +14208,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.9.0.tgz", - "integrity": "sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz", + "integrity": "sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==", "dependencies": { - "@remix-run/router": "1.4.0", - "react-router": "6.9.0" + "@remix-run/router": "1.5.0", + "react-router": "6.10.0" }, "engines": { "node": ">=14" @@ -14316,9 +14281,9 @@ } }, "node_modules/react-tooltip": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.10.1.tgz", - "integrity": "sha512-bfEc3L0yTcjW2jTu69AJo+GVy5F88MgN3gmFo6vQnq2i6GNlCZlagQp60Vf8LFbr36fjV0TYJzF3QYmwG7ItaA==", + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.11.1.tgz", + "integrity": "sha512-+2a/DvmOlPQd5e1f3s32E/+vv4Tv4UmPxZfCyeVr4BeY3SRCEKGHiE36jH+UtqxSuRP9TKviwmhow4gNDRXCMQ==", "dependencies": { "@floating-ui/dom": "^1.0.0", "classnames": "^2.3.0" @@ -14555,11 +14520,11 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -14767,9 +14732,9 @@ } }, "node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -15020,9 +14985,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15561,9 +15526,9 @@ } }, "node_modules/terser": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.8.tgz", - "integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", + "version": "5.16.9", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz", + "integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -15830,9 +15795,9 @@ } }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -15941,9 +15906,9 @@ } }, "node_modules/ts-loader/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -16092,9 +16057,9 @@ } }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/tsconfig-paths": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz", - "integrity": "sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "dependencies": { "json5": "^2.2.2", @@ -16285,9 +16250,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -16297,6 +16262,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -16304,7 +16273,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -16531,13 +16500,13 @@ } }, "node_modules/webpack": { - "version": "5.76.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz", - "integrity": "sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA==", + "version": "5.79.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.79.0.tgz", + "integrity": "sha512-3mN4rR2Xq+INd6NnYuL9RC9GAmc1ROPKJoHhrZ4pAjdMFEkJJWrsPw8o2JjCIyQyTu7rTXYn4VG6OpyB3CobZg==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", + "@types/estree": "^1.0.0", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", @@ -16546,7 +16515,7 @@ "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -16557,7 +16526,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.1.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -16691,15 +16660,15 @@ "dev": true }, "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -16710,9 +16679,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.1.tgz", - "integrity": "sha512-5tWg00bnWbYgkN+pd5yISQKDejRBYGEw15RaEEslH+zdbNDxxaZvEAO2WulaSaFKb5n3YG8JXsGaDsut1D0xdA==", + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.3.tgz", + "integrity": "sha512-KqqzrzMRSRy5ePz10VhjyL27K2dxqwXQLP5rAKwRJBPUahe7Z2bBWzHw37jeb8GCPKxZRO79ZdQUAPesMh/Nug==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -16803,15 +16772,15 @@ "dev": true }, "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -17206,45 +17175,45 @@ "integrity": "sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==" }, "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "requires": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "requires": { "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", "dev": true }, "@babel/core": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz", - "integrity": "sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", "dev": true, "requires": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", - "@babel/helper-compilation-targets": "^7.20.7", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", "@babel/helper-module-transforms": "^7.21.2", "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.3", + "@babel/parser": "^7.21.4", "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.3", - "@babel/types": "^7.21.3", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -17253,26 +17222,14 @@ } }, "@babel/generator": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz", - "integrity": "sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", "requires": { - "@babel/types": "^7.21.3", + "@babel/types": "^7.21.4", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@babel/helper-annotate-as-pure": { @@ -17284,13 +17241,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -17319,11 +17276,11 @@ } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.21.4" } }, "@babel/helper-module-transforms": { @@ -17403,9 +17360,9 @@ } }, "@babel/parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", - "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==" + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==" }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -17453,12 +17410,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -17525,12 +17482,12 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-react-display-name": { @@ -17607,26 +17564,26 @@ } }, "@babel/traverse": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.3.tgz", - "integrity": "sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.3", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.3", - "@babel/types": "^7.21.3", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", - "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", "requires": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -17676,9 +17633,9 @@ } }, "@emotion/cache": { - "version": "11.10.5", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", - "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", + "version": "11.10.7", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.7.tgz", + "integrity": "sha512-VLl1/2D6LOjH57Y8Vem1RoZ9haWF4jesHDGiHtKozDQuBIkJm2gimVo0I02sWCuzZtVACeixTVB4jeE8qvCBoQ==", "requires": { "@emotion/memoize": "^0.8.0", "@emotion/sheet": "^1.2.1", @@ -17813,16 +17770,16 @@ } }, "@floating-ui/core": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.5.tgz", - "integrity": "sha512-qrcbyfnRVziRlB6IYwjCopYhO7Vud750JlJyuljruIXcPxr22y8zdckcJGsuOdnQ639uVD1tTXddrcH3t3QYIQ==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz", + "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" }, "@floating-ui/dom": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.5.tgz", - "integrity": "sha512-+sAUfpQ3Frz+VCbPCqj+cZzvEESy3fjSeT/pDWkYCWOBXYNNKZfuVsHuv8/JO2zze8+Eb/Q7a6hZVgzS81fLbQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.6.tgz", + "integrity": "sha512-02vxFDuvuVPs22iJICacezYJyf7zwwOCWkPNkWNBr1U0Qt1cKFYzWvxts0AmqcOQGwt/3KJWcWIgtbUU38keyw==", "requires": { - "@floating-ui/core": "^1.2.4" + "@floating-ui/core": "^1.2.6" } }, "@humanwhocodes/config-array": { @@ -18422,13 +18379,13 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/resolve-uri": { @@ -18442,40 +18399,34 @@ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" }, "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "requires": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + } } }, "@leichtgewicht/ip-codec": { @@ -18485,9 +18436,9 @@ "dev": true }, "@noble/curves": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.8.3.tgz", - "integrity": "sha512-OqaOf4RWDaCRuBKJLDURrgVxjLmneGsiCXGuzYB5y95YithZMA6w4uk34DHSm0rKMrrYiaeZj48/81EvaAScLQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", + "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", "requires": { "@noble/hashes": "1.3.0" } @@ -18556,59 +18507,59 @@ } }, "@react-spring/animated": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.1.tgz", - "integrity": "sha512-EX5KAD9y7sD43TnLeTNG1MgUVpuRO1YaSJRPawHNRgUWYfILge3s85anny4S4eTJGpdp5OoFV2kx9fsfeo0qsw==", + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.2.tgz", + "integrity": "sha512-ipvleJ99ipqlnHkz5qhSsgf/ny5aW0ZG8Q+/2Oj9cI7LCc7COdnrSO6V/v8MAX3JOoQNzfz6dye2s5Pt5jGaIA==", "requires": { - "@react-spring/shared": "~9.7.1", - "@react-spring/types": "~9.7.1" + "@react-spring/shared": "~9.7.2", + "@react-spring/types": "~9.7.2" } }, "@react-spring/core": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.1.tgz", - "integrity": "sha512-8K9/FaRn5VvMa24mbwYxwkALnAAyMRdmQXrARZLcBW2vxLJ6uw9Cy3d06Z8M12kEqF2bDlccaCSDsn2bSz+Q4A==", + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.2.tgz", + "integrity": "sha512-fF512edZT/gKVCA90ZRxfw1DmELeVwiL4OC2J6bMUlNr707C0h4QRoec6DjzG27uLX2MvS1CEatf9KRjwZR9/w==", "requires": { - "@react-spring/animated": "~9.7.1", - "@react-spring/rafz": "~9.7.1", - "@react-spring/shared": "~9.7.1", - "@react-spring/types": "~9.7.1" + "@react-spring/animated": "~9.7.2", + "@react-spring/rafz": "~9.7.2", + "@react-spring/shared": "~9.7.2", + "@react-spring/types": "~9.7.2" } }, "@react-spring/rafz": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.1.tgz", - "integrity": "sha512-JSsrRfbEJvuE3w/uvU3mCTuWwpQcBXkwoW14lBgzK9XJhuxmscGo59AgJUpFkGOiGAVXFBGB+nEXtSinFsopgw==" + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.2.tgz", + "integrity": "sha512-kDWMYDQto3+flkrX3vy6DU/l9pxQ4TVW91DglQEc11iDc7shF4+WVDRJvOVLX+xoMP7zyag1dMvlIgvQ+dvA/A==" }, "@react-spring/shared": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.1.tgz", - "integrity": "sha512-R2kZ+VOO6IBeIAYTIA3C1XZ0ZVg/dDP5FKtWaY8k5akMer9iqf5H9BU0jyt3Qtxn0qQY7whQdf6MTcWtKeaawg==", + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.2.tgz", + "integrity": "sha512-6U9qkno+9DxlH5nSltnPs+kU6tYKf0bPLURX2te13aGel8YqgcpFYp5Av8DcN2x3sukinAsmzHUS/FRsdZMMBA==", "requires": { - "@react-spring/rafz": "~9.7.1", - "@react-spring/types": "~9.7.1" + "@react-spring/rafz": "~9.7.2", + "@react-spring/types": "~9.7.2" } }, "@react-spring/types": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.1.tgz", - "integrity": "sha512-yBcyfKUeZv9wf/ZFrQszvhSPuDx6Py6yMJzpMnS+zxcZmhXPeOCKZSHwqrUz1WxvuRckUhlgb7eNI/x5e1e8CA==" + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.2.tgz", + "integrity": "sha512-GEflx2Ex/TKVMHq5g5MxQDNNPNhqg+4Db9m7+vGTm8ttZiyga7YQUF24shgRNebKIjahqCuei16SZga8h1pe4g==" }, "@react-spring/web": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.1.tgz", - "integrity": "sha512-6uUE5MyKqdrJnIJqlDN/AXf3i8PjOQzUuT26nkpsYxUGOk7c+vZVPcfrExLSoKzTb9kF0i66DcqzO5fXz/Z1AA==", + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.2.tgz", + "integrity": "sha512-7qNc7/5KShu2D05x7o2Ols2nUE7mCKfKLaY2Ix70xPMfTle1sZisoQMBFgV9w/fSLZlHZHV9P0uWJqEXQnbV4Q==", "requires": { - "@react-spring/animated": "~9.7.1", - "@react-spring/core": "~9.7.1", - "@react-spring/shared": "~9.7.1", - "@react-spring/types": "~9.7.1" + "@react-spring/animated": "~9.7.2", + "@react-spring/core": "~9.7.2", + "@react-spring/shared": "~9.7.2", + "@react-spring/types": "~9.7.2" } }, "@remix-run/router": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.4.0.tgz", - "integrity": "sha512-BJ9SxXux8zAg991UmT8slpwpsd31K1dHHbD3Ba4VzD+liLQ4WAMSxQp2d2ZPRPfN0jN2NPRowcSSoM7lCaF08Q==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", + "integrity": "sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==" }, "@scure/base": { "version": "1.1.1", @@ -18616,11 +18567,11 @@ "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" }, "@scure/bip32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.2.0.tgz", - "integrity": "sha512-O+vT/hBVk+ag2i6j2CDemwd1E1MtGt+7O1KzrPNsaNvSsiEK55MyPIxJIMI2PS8Ijj464B2VbQlpRoQXxw1uHg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", + "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", "requires": { - "@noble/curves": "~0.8.3", + "@noble/curves": "~1.0.0", "@noble/hashes": "~1.3.0", "@scure/base": "~1.1.0" } @@ -19274,41 +19225,41 @@ "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==" }, "@tanstack/query-core": { - "version": "4.27.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.27.0.tgz", - "integrity": "sha512-sm+QncWaPmM73IPwFlmWSKPqjdTXZeFf/7aEmWh00z7yl2FjqophPt0dE1EHW9P1giMC5rMviv7OUbSDmWzXXA==" + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.29.1.tgz", + "integrity": "sha512-vkPewLEG8ua0efo3SsVT0BcBtkq5RZX8oPhDAyKL+k/rdOYSQTEocfGEXSaBwIwsXeOGBUpfKqI+UmHvNqdWXg==" }, "@tanstack/query-persist-client-core": { - "version": "4.27.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-persist-client-core/-/query-persist-client-core-4.27.0.tgz", - "integrity": "sha512-A+dPA7zG0MJOMDeBc/2WcKXW4wV2JMkeBVydobPW9G02M4q0yAj7vI+7SmM2dFuXyIvxXp4KulCywN6abRKDSQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-persist-client-core/-/query-persist-client-core-4.29.1.tgz", + "integrity": "sha512-lC7YsXHdHygVCHDXJqwaLGoWOHSfX+YEhwRaSWMBcHrfsHyEFzAvluQJlDytVd6JFAe49IuLJlajMGBbyI00ZA==", "requires": { - "@tanstack/query-core": "4.27.0" + "@tanstack/query-core": "4.29.1" } }, "@tanstack/query-sync-storage-persister": { - "version": "4.27.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.27.1.tgz", - "integrity": "sha512-vClLXtyQZwfV8QTyxqfkEzZSuwIKnrxORAUyxvCDna1M9xao0HtKYsChPVaJoSZ42PNGGvKCiKdg4kfyLeWj+A==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.29.1.tgz", + "integrity": "sha512-rX0bPgqhkz71HEQIz47Z3IFxs2fg7dO9uoxkjwo50VljrhXMl6Yv77xCeKYL97fNX7zhuMkax8HEy953woJ/QA==", "requires": { - "@tanstack/query-persist-client-core": "4.27.0" + "@tanstack/query-persist-client-core": "4.29.1" } }, "@tanstack/react-query": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.28.0.tgz", - "integrity": "sha512-8cGBV5300RHlvYdS4ea+G1JcZIt5CIuprXYFnsWggkmGoC0b5JaqG0fIX3qwDL9PTNkKvG76NGThIWbpXivMrQ==", + "version": "4.29.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.29.3.tgz", + "integrity": "sha512-FPQrMu7PbCgBcVzoRJm7WmQnAFv+LUgZM9KBZ7Vk/+yERH2BDLvQRuAgczQd5Tb1s3HbOktECRDaOkUxdyBAjw==", "requires": { - "@tanstack/query-core": "4.27.0", + "@tanstack/query-core": "4.29.1", "use-sync-external-store": "^1.2.0" } }, "@tanstack/react-query-persist-client": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-query-persist-client/-/react-query-persist-client-4.28.0.tgz", - "integrity": "sha512-xNpi3YdPOQIyYkKhByYDqTlyCeqICWFhV5PWkoVxYfzlRK6HYX4s+9Int407jEvhBz9cGC4OaL7rd6bynCFrYg==", + "version": "4.29.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-persist-client/-/react-query-persist-client-4.29.3.tgz", + "integrity": "sha512-yyQYr1cLxmakVdWOUV9U/7D4fLiIdtlFa18KIwUI1MSSRwvAjjdx6D4GSmsuLXL9eSudNMyvpy5iTAICv2+CoQ==", "requires": { - "@tanstack/query-persist-client-core": "4.27.0" + "@tanstack/query-persist-client-core": "4.29.1" } }, "@testing-library/dom": { @@ -19632,9 +19583,9 @@ } }, "@types/eslint": { - "version": "8.21.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", - "integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", "dev": true, "requires": { "@types/estree": "*", @@ -19652,9 +19603,9 @@ } }, "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", "dev": true }, "@types/express": { @@ -19835,9 +19786,9 @@ "dev": true }, "@types/react": { - "version": "18.0.31", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.31.tgz", - "integrity": "sha512-EEG67of7DsvRDU6BLLI0p+k1GojDLz9+lZsnCpCRTa/lOokvyPBvp8S5x+A24hME3yyQuIipcP70KJ6H7Qupww==", + "version": "18.0.37", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.37.tgz", + "integrity": "sha512-4yaZZtkRN3ZIQD3KSEwkfcik8s0SWV+82dlJot1AbGYHCzJkWP3ENBY6wYeDRmKZ6HkrgoGAmR2HqdwYGp6OEw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -19989,15 +19940,15 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.0.tgz", - "integrity": "sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz", + "integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.57.0", - "@typescript-eslint/type-utils": "5.57.0", - "@typescript-eslint/utils": "5.57.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/type-utils": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -20016,9 +19967,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -20033,53 +19984,53 @@ } }, "@typescript-eslint/parser": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.0.tgz", - "integrity": "sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", + "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.57.0", - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/typescript-estree": "5.57.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz", - "integrity": "sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", + "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0" + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0" } }, "@typescript-eslint/type-utils": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.57.0.tgz", - "integrity": "sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", + "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.57.0", - "@typescript-eslint/utils": "5.57.0", + "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.0.tgz", - "integrity": "sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz", - "integrity": "sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/visitor-keys": "5.57.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -20097,9 +20048,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -20114,17 +20065,17 @@ } }, "@typescript-eslint/utils": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.57.0.tgz", - "integrity": "sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", + "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.57.0", - "@typescript-eslint/types": "5.57.0", - "@typescript-eslint/typescript-estree": "5.57.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -20139,9 +20090,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -20156,12 +20107,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.57.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz", - "integrity": "sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.57.0", + "@typescript-eslint/types": "5.59.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -20649,15 +20600,15 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "axe-core": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", - "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", "dev": true }, "axios": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz", - "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.5.tgz", + "integrity": "sha512-glL/PvG/E+xCWwV8S6nCHcrfg1exGx7vxyUIivIA1iL7BIh6bePylCfVHwp6k13ao7SATxB6imau2kqY+I67kw==", "requires": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -21118,14 +21069,14 @@ } }, "babel-plugin-styled-components": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", - "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.1.tgz", + "integrity": "sha512-c8lJlszObVQPguHkI+akXv8+Jgb9Ccujx0EetL7oIvwU100LxO6XAGe45qry37wUL40a5U9f23SYrivro2XKhA==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.0", "@babel/helper-module-imports": "^7.16.0", "babel-plugin-syntax-jsx": "^6.18.0", - "lodash": "^4.17.11", + "lodash": "^4.17.21", "picomatch": "^2.3.0" } }, @@ -22159,9 +22110,9 @@ "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" }, "caniuse-lite": { - "version": "1.0.30001472", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001472.tgz", - "integrity": "sha512-xWC/0+hHHQgj3/vrKYY0AAzeIUgr7L9wlELIcAvZdDUHlhL/kNxMdnQLOSOQfP8R51ZzPhmHdyMkI0MMpmxCfg==", + "version": "1.0.30001480", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz", + "integrity": "sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==", "dev": true }, "chalk": { @@ -22240,9 +22191,9 @@ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, "clean-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", - "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -22313,9 +22264,9 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "colornames": { @@ -22332,9 +22283,9 @@ } }, "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true }, "common-path-prefix": { @@ -22482,9 +22433,9 @@ } }, "globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", "dev": true, "requires": { "dir-glob": "^3.0.1", @@ -22501,15 +22452,15 @@ "dev": true }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" } }, "slash": { @@ -22527,9 +22478,9 @@ "dev": true }, "core-js-pure": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.29.1.tgz", - "integrity": "sha512-4En6zYVi0i0XlXHVz/bi6l1XDjCqkKRq765NXuX+SnaIatlE96Odt5lMLjdxUiNI1v9OXI5DSLWYPlmTfkTktg==", + "version": "3.30.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.1.tgz", + "integrity": "sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg==", "dev": true }, "core-util-is": { @@ -22678,9 +22629,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -22758,9 +22709,9 @@ } }, "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "damerau-levenshtein": { "version": "1.0.8", @@ -23147,9 +23098,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.342", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.342.tgz", - "integrity": "sha512-dTei3VResi5bINDENswBxhL+N0Mw5YnfWyTqO75KGsVldurEkhC9+CelJVAse8jycWyP8pv3VSj4BSyP8wTWJA==", + "version": "1.4.367", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.367.tgz", + "integrity": "sha512-mNuDxb+HpLhPGUKrg0hSxbTjHWw8EziwkwlJNkFUj3W60ypigLDRVz04vU+VRsJPi8Gub+FDhYUpuTm9xiEwRQ==", "dev": true }, "elliptic": { @@ -23217,9 +23168,9 @@ } }, "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true }, "envinfo": { @@ -23313,9 +23264,9 @@ } }, "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", "dev": true }, "es-set-tostringtag": { @@ -23515,9 +23466,9 @@ "dev": true }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -23611,9 +23562,9 @@ } }, "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "requires": { "debug": "^3.2.7" @@ -24599,14 +24550,14 @@ } }, "html-minifier-terser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.1.0.tgz", - "integrity": "sha512-BvPO2S7Ip0Q5qt+Y8j/27Vclj6uHC6av0TMoDn7/bJPhMWHI2UtR2e/zEgJn3/qYAmxumrGp9q4UHurL6mtW9Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", "dev": true, "requires": { "camel-case": "^4.1.2", - "clean-css": "5.2.0", - "commander": "^9.4.1", + "clean-css": "~5.3.2", + "commander": "^10.0.0", "entities": "^4.4.0", "param-case": "^3.0.4", "relateurl": "^0.2.7", @@ -24622,9 +24573,9 @@ } }, "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", + "integrity": "sha512-cTUzZ1+NqjGEKjmVgZKLMdiFg3m9MdRXkZW2OEe69WYVi5ONLMmlnSZdXzGGMOq0C8jGDrL6EWyEDDUioHO/pA==", "dev": true, "requires": { "@types/html-minifier-terser": "^6.0.0", @@ -24634,15 +24585,6 @@ "tapable": "^2.0.0" }, "dependencies": { - "clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, "commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -24663,12 +24605,6 @@ "relateurl": "^0.2.7", "terser": "^5.10.0" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -24953,9 +24889,9 @@ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", "requires": { "has": "^1.0.3" } @@ -26320,9 +26256,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -26913,9 +26849,9 @@ "dev": true }, "memfs": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.0.tgz", + "integrity": "sha512-yK6o8xVJlQerz57kvPROwTMgx5WtGwC2ZxDtOUsnGl49rHjYkfQoPNZPCKH73VdLE1BwBu/+Fx/NL8NYMUw2aA==", "dev": true, "requires": { "fs-monkey": "^1.0.3" @@ -27271,9 +27207,9 @@ } }, "nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz", + "integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==", "dev": true }, "object-assign": { @@ -27702,12 +27638,12 @@ } }, "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.22.tgz", + "integrity": "sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==", "dev": true, "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -28061,9 +27997,9 @@ } }, "rc-motion": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.6.3.tgz", - "integrity": "sha512-xFLkes3/7VL/J+ah9jJruEW/Akbx5F6jVa2wG5o/ApGKQKSOd5FR3rseHLL9+xtJg4PmCwo6/1tqhDO/T+jFHA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.7.0.tgz", + "integrity": "sha512-gszH/FPVtQ3eb+02Mcqr1PLY36w+Hqkb5jN5t89gKJYK854Lz4TrIgnOxx4+KXeWgvQ/lrLp3yzCYCIzuihWRA==", "requires": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -28071,9 +28007,9 @@ } }, "rc-util": { - "version": "5.29.2", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.29.2.tgz", - "integrity": "sha512-xHT9Dr3RD6tyvCibnH10l3mudC6TJjWNr9UDy3CrOGZqTY354OfdwP87ahKNe0b3A1dsysDldvx0SBuswhlOeA==", + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.30.0.tgz", + "integrity": "sha512-uaWpF/CZGyXuhQG71MWxkU+0bWkPEgqZUxEv251Cu7p3kpHDNm5+Ygu/U8ux0a/zbfGW8PsKcJL0XVBOMrlIZg==", "requires": { "@babel/runtime": "^7.18.3", "react-is": "^16.12.0" @@ -28192,27 +28128,27 @@ "dev": true }, "react-refresh-typescript": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/react-refresh-typescript/-/react-refresh-typescript-2.0.8.tgz", - "integrity": "sha512-7zsaM8jIpUZ2hxMdTo9GNZRauTI11AD5YNNaNXVGb8mtYVwdSbc6IQV8YaHevSWYbx+ZpZispezdCfaJuTrh3w==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/react-refresh-typescript/-/react-refresh-typescript-2.0.9.tgz", + "integrity": "sha512-chAnOO4vpxm/3WkgOVmti+eN8yUtkJzeGkOigV6UA9eDFz12W34e/SsYe2H5+RwYJ3+sfSZkVbiXcG1chEBxlg==", "dev": true, "requires": {} }, "react-router": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.9.0.tgz", - "integrity": "sha512-51lKevGNUHrt6kLuX3e/ihrXoXCa9ixY/nVWRLlob4r/l0f45x3SzBvYJe3ctleLUQQ5fVa4RGgJOTH7D9Umhw==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.10.0.tgz", + "integrity": "sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==", "requires": { - "@remix-run/router": "1.4.0" + "@remix-run/router": "1.5.0" } }, "react-router-dom": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.9.0.tgz", - "integrity": "sha512-/seUAPY01VAuwkGyVBPCn1OXfVbaWGGu4QN9uj0kCPcTyNYgL1ldZpxZUpRU7BLheKQI4Twtl/OW2nHRF1u26Q==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz", + "integrity": "sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==", "requires": { - "@remix-run/router": "1.4.0", - "react-router": "6.9.0" + "@remix-run/router": "1.5.0", + "react-router": "6.10.0" } }, "react-select": { @@ -28255,9 +28191,9 @@ } }, "react-tooltip": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.10.1.tgz", - "integrity": "sha512-bfEc3L0yTcjW2jTu69AJo+GVy5F88MgN3gmFo6vQnq2i6GNlCZlagQp60Vf8LFbr36fjV0TYJzF3QYmwG7ItaA==", + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.11.1.tgz", + "integrity": "sha512-+2a/DvmOlPQd5e1f3s32E/+vv4Tv4UmPxZfCyeVr4BeY3SRCEKGHiE36jH+UtqxSuRP9TKviwmhow4gNDRXCMQ==", "requires": { "@floating-ui/dom": "^1.0.0", "classnames": "^2.3.0" @@ -28444,11 +28380,11 @@ "dev": true }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.11.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -28587,9 +28523,9 @@ } }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -28803,9 +28739,9 @@ "dev": true }, "shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true }, "side-channel": { @@ -29214,9 +29150,9 @@ } }, "terser": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.8.tgz", - "integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", + "version": "5.16.9", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz", + "integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -29402,9 +29338,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -29481,9 +29417,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -29612,9 +29548,9 @@ } }, "tsconfig-paths": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz", - "integrity": "sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "requires": { "json5": "^2.2.2", @@ -29739,9 +29675,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -29937,13 +29873,13 @@ "dev": true }, "webpack": { - "version": "5.76.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz", - "integrity": "sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA==", + "version": "5.79.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.79.0.tgz", + "integrity": "sha512-3mN4rR2Xq+INd6NnYuL9RC9GAmc1ROPKJoHhrZ4pAjdMFEkJJWrsPw8o2JjCIyQyTu7rTXYn4VG6OpyB3CobZg==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", + "@types/estree": "^1.0.0", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", @@ -29952,7 +29888,7 @@ "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -29963,7 +29899,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.1.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -30049,23 +29985,23 @@ "dev": true }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" } } } }, "webpack-dev-server": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.1.tgz", - "integrity": "sha512-5tWg00bnWbYgkN+pd5yISQKDejRBYGEw15RaEEslH+zdbNDxxaZvEAO2WulaSaFKb5n3YG8JXsGaDsut1D0xdA==", + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.13.3.tgz", + "integrity": "sha512-KqqzrzMRSRy5ePz10VhjyL27K2dxqwXQLP5rAKwRJBPUahe7Z2bBWzHw37jeb8GCPKxZRO79ZdQUAPesMh/Nug==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", @@ -30128,15 +30064,15 @@ "dev": true }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.1.tgz", + "integrity": "sha512-lELhBAAly9NowEsX0yZBlw9ahZG+sK/1RJ21EpzdYHKEs13Vku3LJ+MIPhh4sMs0oCCeufZQEQbMekiA4vuVIQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" } }, "ws": { diff --git a/src/app/components/confirmBtcTransactionComponent/index.tsx b/src/app/components/confirmBtcTransactionComponent/index.tsx index 8c8f06188..8a993d9ad 100644 --- a/src/app/components/confirmBtcTransactionComponent/index.tsx +++ b/src/app/components/confirmBtcTransactionComponent/index.tsx @@ -113,6 +113,7 @@ interface Props { assetDetail?: string; isRestoreFundFlow?: boolean; nonOrdinalUtxos?: BtcUtxoDataResponse []; + amount?: string; onConfirmClick: (signedTxHex: string) => void; onCancelClick: () => void; onBackButtonClick: () => void; @@ -128,6 +129,7 @@ function ConfirmBtcTransactionComponent({ assetDetail, isRestoreFundFlow, nonOrdinalUtxos, + amount, onConfirmClick, onCancelClick, onBackButtonClick, @@ -299,11 +301,11 @@ function ConfirmBtcTransactionComponent({ title={t('CONFIRM_TRANSACTION.ASSET')} /> ) : ( - recipients?.map((recipient :Recipient, index) => ( + recipients?.map((recipient, index) => ( ({ marginTop: props.theme.spacing(5), @@ -74,12 +75,6 @@ function ConfirmBtcTransaction() { } }, [errorBtcOrdinalTransaction]); - useEffect(() => { - if (!fee && !amount) { - navigate('/send-btc'); - } - }); - useEffect(() => { setRecipientAddress(location.state.recipientAddress); }, [location]); @@ -172,7 +167,7 @@ function ConfirmBtcTransaction() { {ordinalsInBtc && ordinalsInBtc.length > 0 && ( Date: Wed, 26 Apr 2023 22:09:49 +0500 Subject: [PATCH 14/26] fix layout --- .../transferAmountComponent/index.tsx | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/app/components/transferAmountComponent/index.tsx b/src/app/components/transferAmountComponent/index.tsx index f1501961a..e22fc6da4 100644 --- a/src/app/components/transferAmountComponent/index.tsx +++ b/src/app/components/transferAmountComponent/index.tsx @@ -56,6 +56,13 @@ interface ColumnProps { } const ColumnContainer = styled.div((props) => ({ + display: 'flex', + flexDirection: props.isExpanded ? 'column' : 'row', + justifyContent: 'flex-end', + alignItems: props.isExpanded ? 'flex-end' : 'center', +})); + +const ExpandedColumnContainer = styled.div((props) => ({ display: 'flex', flexDirection: props.isExpanded ? 'column' : 'row', flex: 1, @@ -70,6 +77,11 @@ const RowContainer = styled.div({ alignItems: 'center', }); +const TitleContainer = styled.div({ + display: 'flex', + flex: 1, +}); + const ExpandedContainer = styled(animated.div)({ display: 'flex', flexDirection: 'column', @@ -129,7 +141,9 @@ function TransferAmountComponent({ return ( - {title} + + {title} + {!isExpanded && renderAmount}