From 9b1c8c755d9302d4d9a843c69af7d22445852060 Mon Sep 17 00:00:00 2001 From: Fara Woolf Date: Wed, 29 May 2024 16:13:14 -0500 Subject: [PATCH 01/26] fix: asset row skeleton loader, closes #5466 --- package.json | 2 +- pnpm-lock.yaml | 10 ++--- .../hooks/balance/use-total-balance.tsx | 20 ++++------ .../crypto-asset-item-error.tsx | 39 +++++++++++++++++++ .../crypto-asset-item-placeholder.tsx | 18 +++++++++ .../components/loaders/btc-balance-loader.tsx | 12 +++++- .../components/loaders/stx-balance-loader.tsx | 25 ++++++++++-- .../brc20-token-asset-list.tsx | 4 +- .../hooks/use-is-fetching-collectibles.ts | 3 +- .../btc-balance-native-segwit.hooks.ts | 17 +++----- .../ordinals/brc20/brc20-tokens.hooks.ts | 2 +- src/app/query/query-config.ts | 8 ---- src/app/query/query-prefixes.ts | 19 --------- .../skeleton-loader/skeleton-loader.tsx | 1 - 14 files changed, 112 insertions(+), 68 deletions(-) create mode 100644 src/app/components/crypto-asset-item/crypto-asset-item-error.tsx create mode 100644 src/app/components/crypto-asset-item/crypto-asset-item-placeholder.tsx delete mode 100644 src/app/query/query-config.ts delete mode 100644 src/app/query/query-prefixes.ts diff --git a/package.json b/package.json index bcb63566d82..e68fb84f09b 100644 --- a/package.json +++ b/package.json @@ -139,7 +139,7 @@ "@leather-wallet/constants": "0.6.3", "@leather-wallet/crypto": "1.0.1", "@leather-wallet/models": "0.8.0", - "@leather-wallet/query": "0.8.6", + "@leather-wallet/query": "0.8.7", "@leather-wallet/tokens": "0.5.2", "@leather-wallet/utils": "0.8.1", "@ledgerhq/hw-transport-webusb": "6.27.19", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e5ee77f24a4..152f229101f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,8 +47,8 @@ importers: specifier: 0.8.0 version: 0.8.0 '@leather-wallet/query': - specifier: 0.8.6 - version: 0.8.6(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 0.8.7 + version: 0.8.7(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@leather-wallet/tokens': specifier: 0.5.2 version: 0.5.2 @@ -2512,8 +2512,8 @@ packages: '@leather-wallet/prettier-config@0.4.1': resolution: {integrity: sha512-8J1OqfAPtP64MUp3yERQVKnWdp7wHLBjcWlnu68qvS6obxWKkXTZVArHyvADkHRdpmu7rvEzhFRi+fyw00Ui/Q==} - '@leather-wallet/query@0.8.6': - resolution: {integrity: sha512-DmpX32UEirFeqipcDijGvgDbOZkWmF+xUm9yuPtK44h4NJJx+hhcaQkFIfvCLmcTlTvBv42sEbnqeIw3CBDfow==} + '@leather-wallet/query@0.8.7': + resolution: {integrity: sha512-Qn9vEkq+zNEolLZ2MJKO9jmhHnvhBlIf0JjaSe5tlBEy266JTH7IwzS4OdFAf0pP3Ugjf/Cqz5qz0k0Y4EZrFw==} peerDependencies: react: '*' @@ -15503,7 +15503,7 @@ snapshots: - '@vue/compiler-sfc' - supports-color - '@leather-wallet/query@0.8.6(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@leather-wallet/query@0.8.7(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@fungible-systems/zone-file': 2.0.0 '@hirosystems/token-metadata-api-client': 1.2.0(encoding@0.1.13) diff --git a/src/app/common/hooks/balance/use-total-balance.tsx b/src/app/common/hooks/balance/use-total-balance.tsx index eada203e6f7..81d205888b4 100644 --- a/src/app/common/hooks/balance/use-total-balance.tsx +++ b/src/app/common/hooks/balance/use-total-balance.tsx @@ -27,12 +27,8 @@ export function useTotalBalance({ btcAddress, stxAddress }: UseTotalBalanceArgs) const stxBalance = balance ? balance.totalBalance : createMoney(0, 'STX'); // get btc balance - const { - balance: btcBalance, - isLoading: isLoadingBtcBalance, - isFetching: isFetchingBtcBalance, - isInitialLoading: isInititalLoadingBtcBalance, - } = useBtcCryptoAssetBalanceNativeSegwit(btcAddress); + const { balance: btcBalance, query: btcQueryResult } = + useBtcCryptoAssetBalanceNativeSegwit(btcAddress); return useMemo(() => { // calculate total balance @@ -46,9 +42,9 @@ export function useTotalBalance({ btcAddress, stxAddress }: UseTotalBalanceArgs) totalBalance, totalBalance.amount.isGreaterThanOrEqualTo(100_000) ? 0 : 2 ), - isLoading: isLoading || isLoadingBtcBalance, - isInitialLoading: isInitialLoading || isInititalLoadingBtcBalance, - isFetching: isFetchingStacksBalance || isFetchingBtcBalance, + isLoading: isLoading || btcQueryResult.isLoading, + isInitialLoading: isInitialLoading || btcQueryResult.isInitialLoading, + isFetching: isFetchingStacksBalance || btcQueryResult.isFetching, }; }, [ stxBalance, @@ -56,10 +52,10 @@ export function useTotalBalance({ btcAddress, stxAddress }: UseTotalBalanceArgs) btcBalance.availableBalance, btcMarketData, isLoading, - isLoadingBtcBalance, + btcQueryResult.isLoading, + btcQueryResult.isInitialLoading, + btcQueryResult.isFetching, isInitialLoading, - isInititalLoadingBtcBalance, isFetchingStacksBalance, - isFetchingBtcBalance, ]); } diff --git a/src/app/components/crypto-asset-item/crypto-asset-item-error.tsx b/src/app/components/crypto-asset-item/crypto-asset-item-error.tsx new file mode 100644 index 00000000000..e6a42c98e30 --- /dev/null +++ b/src/app/components/crypto-asset-item/crypto-asset-item-error.tsx @@ -0,0 +1,39 @@ +import type { QueryObserverResult } from '@tanstack/react-query'; +import { Box, styled } from 'leather-styles/jsx'; + +import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; + +interface CryptoAssetItemErrorProps { + caption: string; + icon: React.ReactNode; + onRefetch?(): Promise>; + title: string; +} +export function CryptoAssetItemError({ + caption, + icon, + onRefetch, + title, +}: CryptoAssetItemErrorProps) { + return ( + + + Unable to load + + } + captionRight={ + onRefetch && ( + + Retry + + ) + } + /> + + ); +} diff --git a/src/app/components/crypto-asset-item/crypto-asset-item-placeholder.tsx b/src/app/components/crypto-asset-item/crypto-asset-item-placeholder.tsx new file mode 100644 index 00000000000..4254f2d1427 --- /dev/null +++ b/src/app/components/crypto-asset-item/crypto-asset-item-placeholder.tsx @@ -0,0 +1,18 @@ +import { Box, Circle } from 'leather-styles/jsx'; + +import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; +import { SkeletonLoader } from '@app/ui/components/skeleton-loader/skeleton-loader'; + +export function CryptoAssetItemPlaceholder() { + return ( + + } + titleLeft={} + captionLeft={} + titleRight={} + captionRight={} + /> + + ); +} diff --git a/src/app/components/loaders/btc-balance-loader.tsx b/src/app/components/loaders/btc-balance-loader.tsx index a5b3a4e86a8..7ded71407d9 100644 --- a/src/app/components/loaders/btc-balance-loader.tsx +++ b/src/app/components/loaders/btc-balance-loader.tsx @@ -1,12 +1,20 @@ import type { BtcCryptoAssetBalance } from '@leather-wallet/models'; +import { isFetchedWithSuccess, isInitializingData } from '@leather-wallet/query'; import { useBtcCryptoAssetBalanceNativeSegwit } from '@app/query/bitcoin/balance/btc-balance-native-segwit.hooks'; +import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon'; + +import { CryptoAssetItemError } from '../crypto-asset-item/crypto-asset-item-error'; +import { CryptoAssetItemPlaceholder } from '../crypto-asset-item/crypto-asset-item-placeholder'; interface BtcBalanceLoaderProps { address: string; children(balance: BtcCryptoAssetBalance, isInitialLoading: boolean): React.ReactNode; } export function BtcBalanceLoader({ address, children }: BtcBalanceLoaderProps) { - const { balance, isInitialLoading } = useBtcCryptoAssetBalanceNativeSegwit(address); - return children(balance, isInitialLoading); + const { balance, query: result } = useBtcCryptoAssetBalanceNativeSegwit(address); + if (isInitializingData(result)) return ; + if (!isFetchedWithSuccess(result)) + return } title="Bitcoin" />; + return children(balance, result.isInitialLoading); } diff --git a/src/app/components/loaders/stx-balance-loader.tsx b/src/app/components/loaders/stx-balance-loader.tsx index 416aea90090..60880b6221d 100644 --- a/src/app/components/loaders/stx-balance-loader.tsx +++ b/src/app/components/loaders/stx-balance-loader.tsx @@ -1,7 +1,15 @@ import type { StxCryptoAssetBalance } from '@leather-wallet/models'; -import { useStxCryptoAssetBalance } from '@leather-wallet/query'; +import { + isErrorTooManyRequests, + isFetchedWithSuccess, + isInitializingData, + useStxCryptoAssetBalance, +} from '@leather-wallet/query'; -import { isFetchedWithSuccess } from '@app/query/query-config'; +import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon'; + +import { CryptoAssetItemError } from '../crypto-asset-item/crypto-asset-item-error'; +import { CryptoAssetItemPlaceholder } from '../crypto-asset-item/crypto-asset-item-placeholder'; interface StxBalanceLoaderProps { address: string; @@ -9,7 +17,18 @@ interface StxBalanceLoaderProps { } export function StxBalanceLoader({ address, children }: StxBalanceLoaderProps) { const result = useStxCryptoAssetBalance(address); - if (!isFetchedWithSuccess(result)) return null; + if (isInitializingData(result)) return ; + if (isErrorTooManyRequests(result)) + return ( + } + onRefetch={() => result.refetch()} + title="Stacks" + /> + ); + if (!isFetchedWithSuccess(result)) + return } title="Stacks" />; const { data: balance, isInitialLoading } = result; return children(balance, isInitialLoading); } diff --git a/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx b/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx index 3d7abccc32b..d98229891dc 100644 --- a/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx +++ b/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx @@ -25,7 +25,7 @@ interface Brc20TokenAssetListProps { } export function Brc20TokenAssetList({ tokens, variant }: Brc20TokenAssetListProps) { const navigate = useNavigate(); - const { balance, isInitialLoading } = useCurrentBtcCryptoAssetBalanceNativeSegwit(); + const { balance, query: result } = useCurrentBtcCryptoAssetBalanceNativeSegwit(); const hasPositiveBtcBalanceForFees = variant === 'interactive' && balance.availableBalance.amount.isGreaterThan(0); @@ -49,7 +49,7 @@ export function Brc20TokenAssetList({ tokens, variant }: Brc20TokenAssetListProp availableBalance={token.balance.availableBalance} captionLeft={token.info.name.toUpperCase()} icon={} - isLoading={isInitialLoading} + isLoading={result.isInitialLoading} key={token.info.symbol} onSelectAsset={ hasPositiveBtcBalanceForFees ? () => navigateToBrc20SendForm(token) : undefined diff --git a/src/app/features/collectibles/hooks/use-is-fetching-collectibles.ts b/src/app/features/collectibles/hooks/use-is-fetching-collectibles.ts index dfa4ece8243..f21370afe7b 100644 --- a/src/app/features/collectibles/hooks/use-is-fetching-collectibles.ts +++ b/src/app/features/collectibles/hooks/use-is-fetching-collectibles.ts @@ -1,9 +1,8 @@ import { useIsFetching } from '@tanstack/react-query'; +import { QueryPrefixes } from '@leather-wallet/query'; import { sumNumbers } from '@leather-wallet/utils'; -import { QueryPrefixes } from '@app/query/query-prefixes'; - function areAnyQueriesFetching(...args: number[]) { return sumNumbers(args).toNumber() > 0; } diff --git a/src/app/query/bitcoin/balance/btc-balance-native-segwit.hooks.ts b/src/app/query/bitcoin/balance/btc-balance-native-segwit.hooks.ts index bf0a5612486..18d0dfd8c04 100644 --- a/src/app/query/bitcoin/balance/btc-balance-native-segwit.hooks.ts +++ b/src/app/query/bitcoin/balance/btc-balance-native-segwit.hooks.ts @@ -20,12 +20,7 @@ function createBtcCryptoAssetBalance(balance: Money): BtcCryptoAssetBalance { export function useBtcCryptoAssetBalanceNativeSegwit(address: string) { const runesEnabled = useRunesEnabled(); - const { - data: utxos, - isInitialLoading, - isLoading, - isFetching, - } = useNativeSegwitUtxosByAddress({ + const query = useNativeSegwitUtxosByAddress({ address, filterInscriptionUtxos: true, filterPendingTxsUtxos: true, @@ -33,18 +28,16 @@ export function useBtcCryptoAssetBalanceNativeSegwit(address: string) { }); const balance = useMemo(() => { - if (isUndefined(utxos)) + if (isUndefined(query.data)) return createBtcCryptoAssetBalance(createMoney(new BigNumber(0), 'BTC')); return createBtcCryptoAssetBalance( - createMoney(sumNumbers(utxos.map(utxo => utxo.value)), 'BTC') + createMoney(sumNumbers(query.data.map(utxo => utxo.value)), 'BTC') ); - }, [utxos]); + }, [query.data]); return { balance, - isInitialLoading, - isLoading, - isFetching, + query, }; } diff --git a/src/app/query/bitcoin/ordinals/brc20/brc20-tokens.hooks.ts b/src/app/query/bitcoin/ordinals/brc20/brc20-tokens.hooks.ts index 9f886d4ba22..54a0f479d6b 100644 --- a/src/app/query/bitcoin/ordinals/brc20/brc20-tokens.hooks.ts +++ b/src/app/query/bitcoin/ordinals/brc20/brc20-tokens.hooks.ts @@ -9,6 +9,7 @@ import { import { createBrc20TransferInscription, encodeBrc20TransferInscription, + isFetchedWithSuccess, useAverageBitcoinFeeRates, useCalculateBitcoinFiatValue, useConfigOrdinalsbot, @@ -17,7 +18,6 @@ import { } from '@leather-wallet/query'; import { createMoney, unitToFractionalUnit } from '@leather-wallet/utils'; -import { isFetchedWithSuccess } from '@app/query/query-config'; import { useAppDispatch } from '@app/store'; import { useCurrentAccountIndex } from '@app/store/accounts/account'; import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; diff --git a/src/app/query/query-config.ts b/src/app/query/query-config.ts deleted file mode 100644 index 5e8cc86808e..00000000000 --- a/src/app/query/query-config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { type QueryObserverSuccessResult, type UseQueryResult } from '@tanstack/react-query'; - -// TODO #40: Import from query pkg and remove -export function isFetchedWithSuccess( - query: UseQueryResult -): query is QueryObserverSuccessResult { - return !query.isError && !query.isLoading && query.data !== undefined; -} diff --git a/src/app/query/query-prefixes.ts b/src/app/query/query-prefixes.ts deleted file mode 100644 index bf0602cb54a..00000000000 --- a/src/app/query/query-prefixes.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * These values are used as the first item in some query keys, allowing the - * queries they are used in to be read from any part of the app. - */ -export enum QueryPrefixes { - Brc20TokenBalance = 'brc20-token-balance', - OrdinalTextContent = 'ordinal-text-content', - TaprootAddressUtxos = 'taproot-address-utxos', - BnsNamesByAddress = 'bns-names-by-address', - InscriptionsByAddress = 'inscriptions-by-address', - InscriptionMetadata = 'inscription-metadata', - GetInscriptions = 'get-inscriptions', - GetNftMetadata = 'get-nft-metadata', - GetNftHoldings = 'get-nft-holdings', - - StampCollection = 'stamp-collection', - StampsByAddress = 'stamps-by-address', - GetBrc20Tokens = 'get-brc20-tokens', -} diff --git a/src/app/ui/components/skeleton-loader/skeleton-loader.tsx b/src/app/ui/components/skeleton-loader/skeleton-loader.tsx index 3d4475d6165..268d72a7b31 100644 --- a/src/app/ui/components/skeleton-loader/skeleton-loader.tsx +++ b/src/app/ui/components/skeleton-loader/skeleton-loader.tsx @@ -8,7 +8,6 @@ interface SkeletonLoaderProps { width?: string; height?: string; } - export function SkeletonLoader({ children, width = '30px', From 62500b8626568c8b25d5fe0687f556ea7fd9252c Mon Sep 17 00:00:00 2001 From: Pete Watters <2938440+pete-watters@users.noreply.github.com> Date: Tue, 18 Jun 2024 06:08:44 +0100 Subject: [PATCH 02/26] chore: update dependancies --- .github/workflows/notify-release.yml | 4 +- .github/workflows/publish-extensions.yml | 2 +- package.json | 8 ++-- pnpm-lock.yaml | 52 ++++++++++++------------ 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/.github/workflows/notify-release.yml b/.github/workflows/notify-release.yml index f4d24adf0a6..3dd8636cf3a 100644 --- a/.github/workflows/notify-release.yml +++ b/.github/workflows/notify-release.yml @@ -20,7 +20,7 @@ jobs: path: firefox_version - name: Download previous Firefox version info - uses: dawidd6/action-download-artifact@v3 + uses: dawidd6/action-download-artifact@v6 with: workflow: notify-release.yml workflow_conclusion: success @@ -83,7 +83,7 @@ jobs: path: chrome_version - name: Download previous Chrome version info - uses: dawidd6/action-download-artifact@v3 + uses: dawidd6/action-download-artifact@v6 with: workflow: notify-release.yml workflow_conclusion: success diff --git a/.github/workflows/publish-extensions.yml b/.github/workflows/publish-extensions.yml index a9acc8c7ab8..3f5dbce891d 100644 --- a/.github/workflows/publish-extensions.yml +++ b/.github/workflows/publish-extensions.yml @@ -121,7 +121,7 @@ jobs: path: . - name: Download release-notes.txt from create-version workflow - uses: dawidd6/action-download-artifact@v3 + uses: dawidd6/action-download-artifact@v6 with: workflow: create-version.yml name: release-notes diff --git a/package.json b/package.json index e68fb84f09b..76b19cc98c0 100644 --- a/package.json +++ b/package.json @@ -135,13 +135,13 @@ "@dlc-link/dlc-tools": "1.1.1", "@fungible-systems/zone-file": "2.0.0", "@hirosystems/token-metadata-api-client": "1.2.0", - "@leather-wallet/bitcoin": "0.7.2", - "@leather-wallet/constants": "0.6.3", + "@leather-wallet/bitcoin": "0.7.3", + "@leather-wallet/constants": "0.6.4", "@leather-wallet/crypto": "1.0.1", "@leather-wallet/models": "0.8.0", - "@leather-wallet/query": "0.8.7", + "@leather-wallet/query": "0.8.8", "@leather-wallet/tokens": "0.5.2", - "@leather-wallet/utils": "0.8.1", + "@leather-wallet/utils": "0.8.2", "@ledgerhq/hw-transport-webusb": "6.27.19", "@noble/hashes": "1.4.0", "@noble/secp256k1": "2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 152f229101f..ea0516b2f20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,11 +35,11 @@ importers: specifier: 1.2.0 version: 1.2.0(encoding@0.1.13) '@leather-wallet/bitcoin': - specifier: 0.7.2 - version: 0.7.2(encoding@0.1.13) + specifier: 0.7.3 + version: 0.7.3(encoding@0.1.13) '@leather-wallet/constants': - specifier: 0.6.3 - version: 0.6.3 + specifier: 0.6.4 + version: 0.6.4 '@leather-wallet/crypto': specifier: 1.0.1 version: 1.0.1 @@ -47,14 +47,14 @@ importers: specifier: 0.8.0 version: 0.8.0 '@leather-wallet/query': - specifier: 0.8.7 - version: 0.8.7(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 0.8.8 + version: 0.8.8(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@leather-wallet/tokens': specifier: 0.5.2 version: 0.5.2 '@leather-wallet/utils': - specifier: 0.8.1 - version: 0.8.1 + specifier: 0.8.2 + version: 0.8.2 '@ledgerhq/hw-transport-webusb': specifier: 6.27.19 version: 6.27.19 @@ -2494,11 +2494,11 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@leather-wallet/bitcoin@0.7.2': - resolution: {integrity: sha512-cKzioBtIFLhL/ERY7WV0pniCzNTChdLLabTZhtFwNxc2mHJkkrs08FExJKqb6p8sFibOXuNn+tdDI8TG052eeQ==} + '@leather-wallet/bitcoin@0.7.3': + resolution: {integrity: sha512-Zf7gBXbesJA2Dx74CYWc+HVpiMjW75RegdiY/+4AeT6vA5fzj7D3WyrftDUKsGkCeD+WHiYbUgh0JYE1rnqu6A==} - '@leather-wallet/constants@0.6.3': - resolution: {integrity: sha512-AnNfUKuTWyYC0Y2k82x/8e2YvsFQgF7iDKxVfN8lTELBUCuihvqNxjcrOX1T3w8CHIWZ1iRPkzn1YtUC3AGvTw==} + '@leather-wallet/constants@0.6.4': + resolution: {integrity: sha512-izh9wsv3d2xEqEPDWOOgTlRnBoQp1PDos9ryLzLqHxdPgZqQuleSSsPJjQ/a7fqoLvFYVyv9v5LecWawd3gQ5g==} '@leather-wallet/crypto@1.0.1': resolution: {integrity: sha512-6C4KYuknq0QgSHOuQAwa/VNokNuUmGXiigZygKH7ldpzdPLadC6GbSAITp1Qe7hlYTzWQhsWtEUnWLll4/JCYw==} @@ -2512,8 +2512,8 @@ packages: '@leather-wallet/prettier-config@0.4.1': resolution: {integrity: sha512-8J1OqfAPtP64MUp3yERQVKnWdp7wHLBjcWlnu68qvS6obxWKkXTZVArHyvADkHRdpmu7rvEzhFRi+fyw00Ui/Q==} - '@leather-wallet/query@0.8.7': - resolution: {integrity: sha512-Qn9vEkq+zNEolLZ2MJKO9jmhHnvhBlIf0JjaSe5tlBEy266JTH7IwzS4OdFAf0pP3Ugjf/Cqz5qz0k0Y4EZrFw==} + '@leather-wallet/query@0.8.8': + resolution: {integrity: sha512-wRIQADII4lQdsrh0MvfIxAwr3KhVNEIF8TAvK1p9OBVwBh9O9Tqhh4lC2uZat9Yj205CLiQzAH5cciIDvRS73g==} peerDependencies: react: '*' @@ -2523,8 +2523,8 @@ packages: '@leather-wallet/tokens@0.5.2': resolution: {integrity: sha512-+/1dM24D/d7lyW8f4WFDmAgtsRZmUu+PhmFELa2nD4esYcP4zehVNh+rJN+xfW9U6JgSNXuii2xRjdD+XkSGdg==} - '@leather-wallet/utils@0.8.1': - resolution: {integrity: sha512-Asu85YqkNHHYd/G1EHAlvh0H7pKTFwE1LC97Gk0es+dE7iu+IY0feqAajDzhT7mSMBNt64PwPKTwl/HZVSonPA==} + '@leather-wallet/utils@0.8.2': + resolution: {integrity: sha512-P24T7J1JN7k+vXhrLgGi37Pai4XzFBm0IgYfGjg80AQwhFBtCV1KAju6IPEpNcUHggjKIniP5V1kxJtU1rIh4g==} '@ledgerhq/devices@8.2.0': resolution: {integrity: sha512-XROTW2gTmmuy+YPPDjdtKKTQ3mfxrPtKtV+a9QFbj8f5MnjVMV0Zpy1BIB4CyIMsVVi4z6+nI67auT7IlsM3SQ==} @@ -15454,13 +15454,13 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@leather-wallet/bitcoin@0.7.2(encoding@0.1.13)': + '@leather-wallet/bitcoin@0.7.3(encoding@0.1.13)': dependencies: '@bitcoinerlab/secp256k1': 1.0.2 - '@leather-wallet/constants': 0.6.3 + '@leather-wallet/constants': 0.6.4 '@leather-wallet/crypto': 1.0.1 '@leather-wallet/models': 0.8.0 - '@leather-wallet/utils': 0.8.1 + '@leather-wallet/utils': 0.8.2 '@noble/hashes': 1.4.0 '@noble/secp256k1': 2.1.0 '@scure/base': 1.1.6 @@ -15476,7 +15476,7 @@ snapshots: transitivePeerDependencies: - encoding - '@leather-wallet/constants@0.6.3': {} + '@leather-wallet/constants@0.6.4': {} '@leather-wallet/crypto@1.0.1': dependencies: @@ -15503,15 +15503,15 @@ snapshots: - '@vue/compiler-sfc' - supports-color - '@leather-wallet/query@0.8.7(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@leather-wallet/query@0.8.8(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@fungible-systems/zone-file': 2.0.0 '@hirosystems/token-metadata-api-client': 1.2.0(encoding@0.1.13) - '@leather-wallet/bitcoin': 0.7.2(encoding@0.1.13) - '@leather-wallet/constants': 0.6.3 + '@leather-wallet/bitcoin': 0.7.3(encoding@0.1.13) + '@leather-wallet/constants': 0.6.4 '@leather-wallet/models': 0.8.0 '@leather-wallet/rpc': 1.0.3 - '@leather-wallet/utils': 0.8.1 + '@leather-wallet/utils': 0.8.2 '@noble/hashes': 1.4.0 '@scure/base': 1.1.6 '@scure/bip32': 1.4.0 @@ -15547,9 +15547,9 @@ snapshots: '@leather-wallet/tokens@0.5.2': {} - '@leather-wallet/utils@0.8.1': + '@leather-wallet/utils@0.8.2': dependencies: - '@leather-wallet/constants': 0.6.3 + '@leather-wallet/constants': 0.6.4 '@leather-wallet/models': 0.8.0 '@leather-wallet/rpc': 1.0.3 bignumber.js: 9.1.2 From ff74653717d10e87c1cf2a63d3310f347e204378 Mon Sep 17 00:00:00 2001 From: Pete Watters <2938440+pete-watters@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:07:56 +0100 Subject: [PATCH 03/26] chore: specify resolution for ws --- package.json | 3 +- pnpm-lock.yaml | 85 +++++++++----------------------------------------- 2 files changed, 17 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index 76b19cc98c0..351e5148773 100644 --- a/package.json +++ b/package.json @@ -366,7 +366,8 @@ "socket.io-parser": "4.2.4", "wrap-ansi": "7.0.0", "webpack-dev-middleware": "5.3.4", - "eslint": "8.56.0" + "eslint": "8.56.0", + "ws": "8.17.1" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea0516b2f20..94aedd51e65 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,7 @@ overrides: wrap-ansi: 7.0.0 webpack-dev-middleware: 5.3.4 eslint: 8.56.0 + ws: 8.17.1 importers: @@ -13311,32 +13312,8 @@ packages: write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - ws@7.5.6: - resolution: {integrity: sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -13347,30 +13324,6 @@ packages: utf-8-validate: optional: true - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.2.3: - resolution: {integrity: sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - xdg-basedir@5.1.0: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} engines: {node: '>=12'} @@ -17410,7 +17363,7 @@ snapshots: eventemitter3: 4.0.7 jsonrpc-lite: 2.2.0 socket.io-client: 4.4.1 - ws: 7.5.6 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - encoding @@ -18757,7 +18710,7 @@ snapshots: util: 0.12.5 util-deprecate: 1.0.2 watchpack: 2.4.1 - ws: 8.16.0 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - encoding @@ -22600,7 +22553,7 @@ snapshots: has-cors: 1.1.0 parseqs: 0.0.6 parseuri: 0.0.6 - ws: 8.2.3 + ws: 8.17.1 xmlhttprequest-ssl: 2.0.0 yeast: 0.1.2 transitivePeerDependencies: @@ -24601,7 +24554,7 @@ snapshots: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 12.0.1 - ws: 8.16.0 + ws: 8.17.1 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -27963,7 +27916,7 @@ snapshots: stream-demux: 8.1.0 uuid: 8.3.2 vinyl-buffer: 1.0.1 - ws: 8.16.0 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -27981,7 +27934,7 @@ snapshots: stream-demux: 10.0.1 uuid: 8.3.2 vinyl-buffer: 1.0.1 - ws: 8.16.0 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -27998,7 +27951,7 @@ snapshots: sc-formatter: 4.0.0 stream-demux: 10.0.1 writable-consumable-stream: 4.1.0 - ws: 8.16.0 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -29209,7 +29162,7 @@ snapshots: tmp: 0.2.1 update-notifier: 6.0.2 watchpack: 2.4.0 - ws: 8.13.0 + ws: 8.17.1 yargs: 17.7.1 zip-dir: 2.0.0 transitivePeerDependencies: @@ -29251,7 +29204,7 @@ snapshots: tmp: 0.2.1 update-notifier: 6.0.2 watchpack: 2.4.0 - ws: 8.13.0 + ws: 8.17.1 yargs: 17.7.1 zip-dir: 2.0.0 transitivePeerDependencies: @@ -29283,7 +29236,7 @@ snapshots: opener: 1.5.2 picocolors: 1.0.0 sirv: 2.0.4 - ws: 7.5.9 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -29348,7 +29301,7 @@ snapshots: sockjs: 0.3.24 spdy: 4.0.2 webpack-dev-middleware: 5.3.4(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) - ws: 8.16.0 + ws: 8.17.1 optionalDependencies: webpack: 5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0) @@ -29567,15 +29520,7 @@ snapshots: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - ws@7.5.6: {} - - ws@7.5.9: {} - - ws@8.13.0: {} - - ws@8.16.0: {} - - ws@8.2.3: {} + ws@8.17.1: {} xdg-basedir@5.1.0: {} From c82ed263c09ba30834b5a4b30fc774ae90b93bcf Mon Sep 17 00:00:00 2001 From: kyranjamie Date: Mon, 17 Jun 2024 17:04:48 +0200 Subject: [PATCH 04/26] refactor(analytics): use uniform api with middlewear, remove wrapper fns --- .../common/analytics/track-switch-account.ts | 13 +++ src/app/common/app-analytics.ts | 59 ++++++++++ .../hooks/account/use-create-account.ts | 6 +- .../hooks/account/use-switch-account.ts | 5 +- .../common/hooks/analytics/use-analytics.ts | 110 ------------------ .../analytics/use-track-switch-account.ts | 24 ---- src/app/common/hooks/use-key-actions.ts | 6 +- .../hooks/use-submit-stx-transaction.ts | 5 +- src/app/common/persistence.ts | 9 +- .../bitcoin-transaction-item.tsx | 3 +- src/app/components/request-password.tsx | 7 +- .../stacks-transaction-item.tsx | 4 +- .../submitted-transaction-item.tsx | 4 +- .../components/choose-fee-tabs.tsx | 4 +- .../components/add-collectible.tsx | 4 +- .../components/bitcoin/ordinals.tsx | 7 +- .../components/bitcoin/stamps.tsx | 6 +- .../stacks/stacks-crypto-assets.tsx | 6 +- src/app/features/container/container.tsx | 7 +- .../hooks/use-btc-increase-fee.ts | 3 +- .../leather-intro-dialog.tsx | 4 +- .../ledger/hooks/use-ledger-analytics.hook.ts | 5 +- .../retrieve-taproot-to-native-segwit.tsx | 4 +- .../secret-key-displayer.tsx | 4 +- src/app/features/settings/network/network.tsx | 4 +- src/app/features/settings/settings.tsx | 4 +- .../features/settings/theme/theme-dialog.tsx | 7 +- .../use-sign-stacks-message.ts | 3 +- .../stacks-transaction-signer.tsx | 6 +- .../transaction-error/error-messages.tsx | 3 +- .../transaction-error/transaction-error.tsx | 6 +- src/app/pages/fund/fiat-providers-list.tsx | 5 +- .../onboarding/set-password/set-password.tsx | 7 +- .../onboarding/sign-in/hooks/use-sign-in.ts | 7 +- src/app/pages/onboarding/welcome/welcome.tsx | 6 +- .../pages/psbt-request/use-psbt-request.tsx | 5 +- src/app/pages/receive/receive-btc.tsx | 5 +- src/app/pages/receive/receive-dialog.tsx | 4 +- src/app/pages/receive/receive-ordinal.tsx | 5 +- src/app/pages/receive/receive-stx.tsx | 5 +- .../rpc-get-addresses/use-request-accounts.ts | 4 +- .../rpc-send-transfer-confirmation.tsx | 3 +- .../rpc-send-transfer-summary.tsx | 4 +- .../use-sign-bip322-message.ts | 4 +- .../rpc-sign-psbt/rpc-sign-psbt-summary.tsx | 5 +- .../pages/rpc-sign-psbt/use-rpc-sign-psbt.tsx | 3 +- .../use-rpc-sign-stacks-message.ts | 4 +- .../send/broadcast-error/broadcast-error.tsx | 5 +- .../locked-bitcoin-summary.tsx | 4 +- .../hooks/use-send-inscription-form.tsx | 4 +- .../send-inscription-review.tsx | 3 +- .../sent-inscription-summary.tsx | 3 +- .../recipient-address-displayer.tsx | 6 +- .../components/send-max-button.tsx | 7 +- .../family/bitcoin/hooks/use-send-max.tsx | 6 +- .../brc20/brc20-send-form-confirmation.tsx | 3 +- .../form/btc/btc-send-form-confirmation.tsx | 3 +- .../send/sent-summary/btc-sent-summary.tsx | 5 +- .../send/sent-summary/stx-sent-summary.tsx | 5 +- .../use-sign-stacks-message-request.ts | 4 +- .../transaction-request.tsx | 4 +- .../components/update-action.tsx | 3 +- .../pages/view-secret-key/view-secret-key.tsx | 6 +- .../compliance-checker.query.ts | 2 - src/app/routes/hooks/use-on-tab-closed.ts | 3 +- .../blockchain/bitcoin/bitcoin.hooks.ts | 4 +- src/shared/utils/analytics.ts | 15 +++ 67 files changed, 222 insertions(+), 291 deletions(-) create mode 100644 src/app/common/analytics/track-switch-account.ts create mode 100644 src/app/common/app-analytics.ts delete mode 100644 src/app/common/hooks/analytics/use-analytics.ts delete mode 100644 src/app/common/hooks/analytics/use-track-switch-account.ts diff --git a/src/app/common/analytics/track-switch-account.ts b/src/app/common/analytics/track-switch-account.ts new file mode 100644 index 00000000000..41ccc40a57e --- /dev/null +++ b/src/app/common/analytics/track-switch-account.ts @@ -0,0 +1,13 @@ +import { analytics } from '@shared/utils/analytics'; + +import { queryClient } from '@app/common/persistence'; + +export async function trackSwitchAccount(address: string, index: number) { + const accountBalanceCache = queryClient.getQueryData(['get-address-stx-balance', address]); + if (!accountBalanceCache) return; + try { + const hasStxBalance = !!(accountBalanceCache as any).stx.unlockedStx.amount.isGreaterThan(0); + void analytics.track('switch_account', { index, hasStxBalance }); + } finally { + } +} diff --git a/src/app/common/app-analytics.ts b/src/app/common/app-analytics.ts new file mode 100644 index 00000000000..e4c9890b411 --- /dev/null +++ b/src/app/common/app-analytics.ts @@ -0,0 +1,59 @@ +import { useEffect } from 'react'; + +import { HIRO_API_BASE_URL_MAINNET, HIRO_API_BASE_URL_TESTNET } from '@leather-wallet/models'; + +import { IS_TEST_ENV, SEGMENT_WRITE_KEY } from '@shared/environment'; +import { decorateAnalyticsEventsWithContext, initAnalytics } from '@shared/utils/analytics'; + +import { store } from '@app/store'; +import { selectWalletType } from '@app/store/common/wallet-type.selectors'; +import { selectCurrentNetwork } from '@app/store/networks/networks.selectors'; + +import { flow, origin } from './initial-search-params'; + +const defaultStaticAnalyticContext = { + ip: '0.0.0.0', + platform: 'web', + product: 'extension', + route: location.pathname, + version: VERSION, + ...(flow && { flow }), + ...(origin && { origin }), +}; + +function getAnalyticsStateProps() { + const state = store.getState(); + const currentNetwork = selectCurrentNetwork(state); + const walletType = selectWalletType(state); + + return { + walletType, + currentNetwork, + }; +} + +function isHiroApiUrl(url: string) { + return url.includes(HIRO_API_BASE_URL_MAINNET) || url.includes(HIRO_API_BASE_URL_TESTNET); +} + +function getDerivedStateAnalyticsContext() { + const appState = getAnalyticsStateProps(); + + return { + network: appState.currentNetwork.name.toLowerCase(), + usingDefaultHiroApi: isHiroApiUrl(appState.currentNetwork.chain.stacks.url), + walletType: appState.walletType, + }; +} + +export function useInitalizeAnalytics() { + useEffect(() => { + if (!SEGMENT_WRITE_KEY || IS_TEST_ENV) return; + initAnalytics(); + }, []); +} + +decorateAnalyticsEventsWithContext(() => ({ + ...defaultStaticAnalyticContext, + ...getDerivedStateAnalyticsContext(), +})); diff --git a/src/app/common/hooks/account/use-create-account.ts b/src/app/common/hooks/account/use-create-account.ts index 078e1f63056..00087141d2a 100644 --- a/src/app/common/hooks/account/use-create-account.ts +++ b/src/app/common/hooks/account/use-create-account.ts @@ -1,12 +1,12 @@ import { useCallback } from 'react'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useKeyActions } from '@app/common/hooks/use-key-actions'; import { useToast } from '@app/features/toasts/use-toast'; export function useCreateAccount() { const { createNewAccount } = useKeyActions(); - const analytics = useAnalytics(); const toast = useToast(); return useCallback(() => { @@ -15,5 +15,5 @@ export function useCreateAccount() { success: 'Account created!', error: 'Error creating account.', }); - }, [analytics, createNewAccount, toast]); + }, [createNewAccount, toast]); } diff --git a/src/app/common/hooks/account/use-switch-account.ts b/src/app/common/hooks/account/use-switch-account.ts index 877ee119faf..0457cdba75a 100644 --- a/src/app/common/hooks/account/use-switch-account.ts +++ b/src/app/common/hooks/account/use-switch-account.ts @@ -8,7 +8,7 @@ import { useTransactionNetworkVersion, } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; -import { useTrackSwitchAccount } from '../analytics/use-track-switch-account'; +import { trackSwitchAccount } from '../../analytics/track-switch-account'; import { useKeyActions } from '../use-key-actions'; const TIMEOUT = 350; @@ -20,7 +20,6 @@ export function useSwitchAccount(callback?: () => void) { const txIndex = useTransactionAccountIndex(); const transactionVersion = useTransactionNetworkVersion(); const [hasSwitched, setHasSwitched] = useHasSwitchedAccounts(); - const trackSwitchAccount = useTrackSwitchAccount(); const handleSwitchAccount = useCallback( async (index: number) => { @@ -30,7 +29,7 @@ export function useSwitchAccount(callback?: () => void) { if (!accounts) return; void trackSwitchAccount(accounts[index]?.address, index); }, - [setHasSwitched, switchAccount, callback, accounts, trackSwitchAccount] + [setHasSwitched, switchAccount, callback, accounts] ); const getIsActive = useCallback( diff --git a/src/app/common/hooks/analytics/use-analytics.ts b/src/app/common/hooks/analytics/use-analytics.ts deleted file mode 100644 index b4d11288a91..00000000000 --- a/src/app/common/hooks/analytics/use-analytics.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { useEffect, useMemo } from 'react'; - -import { - EventParams, - PageParams, -} from '@segment/analytics-next/dist/types/core/arguments-resolver'; - -import { - HIRO_API_BASE_URL_MAINNET, - HIRO_API_BASE_URL_TESTNET, - type NetworkConfiguration, -} from '@leather-wallet/models'; - -import { IS_TEST_ENV, SEGMENT_WRITE_KEY } from '@shared/environment'; -import { logger } from '@shared/logger'; -import { analytics, initAnalytics } from '@shared/utils/analytics'; - -import { flow, origin } from '@app/common/initial-search-params'; -import { useWalletType } from '@app/common/use-wallet-type'; -import { store } from '@app/store'; -import { type WalletType, selectWalletType } from '@app/store/common/wallet-type.selectors'; -import { useCurrentNetworkState } from '@app/store/networks/networks.hooks'; -import { selectCurrentNetwork } from '@app/store/networks/networks.selectors'; - -const IGNORED_PATH_REGEXPS = [/^\/$/]; - -function isIgnoredPath(path: string) { - return IGNORED_PATH_REGEXPS.find(regexp => regexp.test(path)); -} - -function isHiroApiUrl(url: string) { - return url.includes(HIRO_API_BASE_URL_MAINNET) || url.includes(HIRO_API_BASE_URL_TESTNET); -} - -export function useInitalizeAnalytics() { - useEffect(() => { - if (!SEGMENT_WRITE_KEY || IS_TEST_ENV) return; - initAnalytics(); - }, []); -} - -function getStateProps() { - const state = store.getState(); - const currentNetwork = selectCurrentNetwork(state); - const walletType = selectWalletType(state); - - return { - walletType, - currentNetwork, - }; -} - -interface Analytics { - identify(properties: object): Promise; - page(...args: PageParams): Promise; - track(...args: EventParams): Promise; -} - -export function createAnalytics(suppliedOptions?: { - currentNetwork: NetworkConfiguration; - walletType?: WalletType; -}): Analytics { - const options = suppliedOptions ?? getStateProps(); - const defaultProperties = { - network: options.currentNetwork.name.toLowerCase(), - usingDefaultHiroApi: isHiroApiUrl(options.currentNetwork.chain.stacks.url), - route: location.pathname, - version: VERSION, - walletType: options.walletType, - ...(flow && { flow }), - ...(origin && { origin }), - }; - - const defaultOptions = { context: { ip: '0.0.0.0' } }; - - return { - async identify(properties) { - return analytics.identify(properties).catch(logger.error); - }, - - async page(...args) { - const [category, name, properties, options, ...rest] = args; - const prop = { ...defaultProperties, ...properties }; - const opts = { ...defaultOptions, ...options }; - logger.debug(`Analytics page view: ${name}`, properties); - - if (typeof name === 'string' && isIgnoredPath(name)) return; - - return analytics.page(category, name, prop, opts, ...rest).catch(logger.error); - }, - - async track(...args) { - const [eventName, properties, options, ...rest] = args; - const prop = { ...defaultProperties, ...properties }; - const opts = { ...defaultOptions, ...options }; - logger.debug(`Analytics event: ${eventName}`, properties); - return analytics.track(eventName, prop, opts, ...rest).catch(logger.error); - }, - }; -} - -export function useAnalytics() { - const currentNetwork = useCurrentNetworkState(); - const { walletType } = useWalletType(); - - return useMemo( - () => createAnalytics({ currentNetwork, walletType }), - [currentNetwork, walletType] - ); -} diff --git a/src/app/common/hooks/analytics/use-track-switch-account.ts b/src/app/common/hooks/analytics/use-track-switch-account.ts deleted file mode 100644 index 23614ac1613..00000000000 --- a/src/app/common/hooks/analytics/use-track-switch-account.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { useCallback } from 'react'; - -import { queryClient } from '@app/common/persistence'; - -import { useAnalytics } from './use-analytics'; - -export function useTrackSwitchAccount() { - const analytics = useAnalytics(); - - return useCallback( - async (address: string, index: number) => { - const accountBalanceCache = queryClient.getQueryData(['get-address-stx-balance', address]); - if (!accountBalanceCache) return; - try { - const hasStxBalance = !!(accountBalanceCache as any).stx.unlockedStx.amount.isGreaterThan( - 0 - ); - void analytics.track('switch_account', { index, hasStxBalance }); - } finally { - } - }, - [analytics] - ); -} diff --git a/src/app/common/hooks/use-key-actions.ts b/src/app/common/hooks/use-key-actions.ts index f46f79608d5..b864e1e337c 100644 --- a/src/app/common/hooks/use-key-actions.ts +++ b/src/app/common/hooks/use-key-actions.ts @@ -4,6 +4,7 @@ import { generateSecretKey } from '@stacks/wallet-sdk'; import { logger } from '@shared/logger'; import { clearChromeStorage } from '@shared/storage/redux-pesist'; +import { analytics } from '@shared/utils/analytics'; import { queryClient } from '@app/common/persistence'; import { partiallyClearLocalStorage } from '@app/common/store-utils'; @@ -18,10 +19,7 @@ import { clearWalletSession } from '@app/store/session-restore'; import { keyActions } from '@app/store/software-keys/software-key.actions'; import { useCurrentKeyDetails } from '@app/store/software-keys/software-key.selectors'; -import { useAnalytics } from './analytics/use-analytics'; - export function useKeyActions() { - const analytics = useAnalytics(); const dispatch = useAppDispatch(); const defaultKeyDetails = useCurrentKeyDetails(); const btcClient = useBitcoinClient(); @@ -71,6 +69,6 @@ export function useKeyActions() { return dispatch(inMemoryKeyActions.lockWallet()); }, }), - [analytics, btcClient, defaultKeyDetails, dispatch, stxClient] + [btcClient, defaultKeyDetails, dispatch, stxClient] ); } diff --git a/src/app/common/hooks/use-submit-stx-transaction.ts b/src/app/common/hooks/use-submit-stx-transaction.ts index 9632667144b..a4c0ccaa919 100644 --- a/src/app/common/hooks/use-submit-stx-transaction.ts +++ b/src/app/common/hooks/use-submit-stx-transaction.ts @@ -6,10 +6,10 @@ import { StacksTransaction, broadcastTransaction } from '@stacks/transactions'; import { delay, isError } from '@leather-wallet/utils'; import { logger } from '@shared/logger'; +import { analytics } from '@shared/utils/analytics'; import { getErrorMessage } from '@app/common/get-error-message'; import { useRefreshAllAccountData } from '@app/common/hooks/account/use-refresh-all-account-data'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useLoading } from '@app/common/hooks/use-loading'; import { safelyFormatHexTxid } from '@app/common/utils/safe-handle-txid'; import { useToast } from '@app/features/toasts/use-toast'; @@ -29,8 +29,6 @@ interface UseSubmitTransactionCallbackArgs { export function useSubmitTransactionCallback({ loadingKey }: UseSubmitTransactionArgs) { const submittedTransactionsActions = useSubmittedTransactionsActions(); const toast = useToast(); - - const analytics = useAnalytics(); const refreshAccountData = useRefreshAllAccountData(); const { setIsLoading, setIsIdle } = useLoading(loadingKey); @@ -73,7 +71,6 @@ export function useSubmitTransactionCallback({ loadingKey }: UseSubmitTransactio toast, setIsIdle, submittedTransactionsActions, - analytics, refreshAccountData, ] ); diff --git a/src/app/common/persistence.ts b/src/app/common/persistence.ts index e63a67390dd..69e3140f045 100644 --- a/src/app/common/persistence.ts +++ b/src/app/common/persistence.ts @@ -5,8 +5,7 @@ import { persistQueryClient } from '@tanstack/react-query-persist-client'; import { PERSISTENCE_CACHE_TIME } from '@leather-wallet/constants'; import { IS_TEST_ENV } from '@shared/environment'; - -import { createAnalytics } from './hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; const storage = { getItem: async (key: string) => { @@ -22,14 +21,14 @@ const chromeStorageLocalPersister = createAsyncStoragePersister({ storage }); export const queryClient = new QueryClient({ queryCache: new QueryCache({ async onError(_error, query) { - const queryPrefix = query.queryKey[0] ?? ''; - await createAnalytics().track(`query_error_${queryPrefix}`); + const queryKey = query.queryKey[0] ?? ''; + void analytics.track('query_error', { queryKey }); }, }), mutationCache: new MutationCache({ async onError(_error, _variables, _context, mutation) { const mutationPrefix = mutation?.options.mutationKey?.[0] ?? ''; - await createAnalytics().track(`mutation_error_${mutationPrefix}`); + void analytics.track('mutation_error', { mutationPrefix }); }, }), defaultOptions: { diff --git a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx index 9add881fb4b..458c3afb7c6 100644 --- a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx +++ b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx @@ -7,8 +7,8 @@ import type { BitcoinTx } from '@leather-wallet/models'; import { useInscriptionByOutput } from '@leather-wallet/query'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; import { containsTaprootInput, @@ -40,7 +40,6 @@ export function BitcoinTransactionItem({ transaction }: BitcoinTransactionItemPr const bitcoinAddress = useCurrentAccountNativeSegwitAddressIndexZero(); const { handleOpenBitcoinTxLink: handleOpenTxLink } = useBitcoinExplorerLink(); - const analytics = useAnalytics(); const caption = useMemo(() => getBitcoinTxCaption(transaction), [transaction]); const value = useMemo( () => getBitcoinTxValue(bitcoinAddress, transaction), diff --git a/src/app/components/request-password.tsx b/src/app/components/request-password.tsx index 614cdb7e492..2ee1fd591c6 100644 --- a/src/app/components/request-password.tsx +++ b/src/app/components/request-password.tsx @@ -3,7 +3,8 @@ import { FormEvent, useCallback, useState } from 'react'; import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { Box, Stack, styled } from 'leather-styles/jsx'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useKeyActions } from '@app/common/hooks/use-key-actions'; import { buildEnterKeyEvent } from '@app/common/hooks/use-modifier-key'; import { WaitingMessages, useWaitingMessage } from '@app/common/hooks/use-waiting-message'; @@ -31,7 +32,7 @@ export function RequestPassword({ onSuccess }: RequestPasswordProps) { const [password, setPassword] = useState(''); const [error, setError] = useState(''); const { unlockWallet } = useKeyActions(); - const analytics = useAnalytics(); + const [isRunning, waitingMessage, startWaitingMessage, stopWaitingMessage] = useWaitingMessage(waitingMessages); @@ -51,7 +52,7 @@ export function RequestPassword({ onSuccess }: RequestPasswordProps) { void analytics.track('complete_unlock', { durationMs: unlockSuccessTimeMs - startUnlockTimeMs, }); - }, [analytics, startWaitingMessage, stopWaitingMessage, unlockWallet, password, onSuccess]); + }, [startWaitingMessage, stopWaitingMessage, unlockWallet, password, onSuccess]); return ( diff --git a/src/app/components/stacks-transaction-item/stacks-transaction-item.tsx b/src/app/components/stacks-transaction-item/stacks-transaction-item.tsx index 5de63ce4ef8..b3f65b00fa6 100644 --- a/src/app/components/stacks-transaction-item/stacks-transaction-item.tsx +++ b/src/app/components/stacks-transaction-item/stacks-transaction-item.tsx @@ -3,8 +3,8 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { StacksTx } from '@leather-wallet/models'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useStacksExplorerLink } from '@app/common/hooks/use-stacks-explorer-link'; import { getTxCaption, @@ -41,7 +41,7 @@ export function StacksTransactionItem({ }: StacksTransactionItemProps) { const { handleOpenStacksTxLink } = useStacksExplorerLink(); const currentAccount = useCurrentStacksAccount(); - const analytics = useAnalytics(); + const { pathname } = useLocation(); const navigate = useNavigate(); const { whenWallet } = useWalletType(); diff --git a/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-item.tsx b/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-item.tsx index 6212e3d204b..a85291a490b 100644 --- a/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-item.tsx +++ b/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-item.tsx @@ -1,7 +1,8 @@ import { StacksTransaction } from '@stacks/transactions'; import { HStack, styled } from 'leather-styles/jsx'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useStacksExplorerLink } from '@app/common/hooks/use-stacks-explorer-link'; import { getTxSenderAddress } from '@app/common/transactions/stacks/transaction.utils'; import { TransactionTitle } from '@app/components/transaction/transaction-title'; @@ -18,7 +19,6 @@ interface SubmittedTransactionItemProps { txid: string; } export function SubmittedTransactionItem({ transaction, txid }: SubmittedTransactionItemProps) { - const analytics = useAnalytics(); const { handleOpenStacksTxLink } = useStacksExplorerLink(); if (!transaction) return null; diff --git a/src/app/features/bitcoin-choose-fee/components/choose-fee-tabs.tsx b/src/app/features/bitcoin-choose-fee/components/choose-fee-tabs.tsx index bfe3025ba19..29ae6b65531 100644 --- a/src/app/features/bitcoin-choose-fee/components/choose-fee-tabs.tsx +++ b/src/app/features/bitcoin-choose-fee/components/choose-fee-tabs.tsx @@ -2,7 +2,8 @@ import { Suspense } from 'react'; import { Box, Stack, StackProps } from 'leather-styles/jsx'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { LoadingSpinner } from '@app/components/loading-spinner'; import { Tabs } from '@app/ui/components/tabs/tabs'; @@ -18,7 +19,6 @@ interface ChooseFeeTabsProps extends StackProps { } export function ChooseFeeTabs(props: ChooseFeeTabsProps) { const { customFee, defaultToCustomFee, feesList, ...rest } = props; - const analytics = useAnalytics(); return ( diff --git a/src/app/features/collectibles/components/add-collectible.tsx b/src/app/features/collectibles/components/add-collectible.tsx index a6b37349175..9d220c21e80 100644 --- a/src/app/features/collectibles/components/add-collectible.tsx +++ b/src/app/features/collectibles/components/add-collectible.tsx @@ -1,15 +1,15 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { PlusIcon } from '@app/ui/icons/plus-icon'; import { CollectibleItemLayout } from './collectible-item.layout'; export function AddCollectible() { const navigate = useNavigate(); - const analytics = useAnalytics(); + const location = useLocation(); return ( diff --git a/src/app/features/collectibles/components/bitcoin/ordinals.tsx b/src/app/features/collectibles/components/bitcoin/ordinals.tsx index 0e6341e8a66..2ff98134d76 100644 --- a/src/app/features/collectibles/components/bitcoin/ordinals.tsx +++ b/src/app/features/collectibles/components/bitcoin/ordinals.tsx @@ -5,7 +5,8 @@ import { Box } from 'leather-styles/jsx'; import { useInscriptions } from '@leather-wallet/query'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { useCurrentTaprootAccount } from '@app/store/accounts/blockchain/bitcoin/taproot-account.hooks'; @@ -23,7 +24,7 @@ export function Ordinals({ setIsLoadingMore }: OrdinalsProps) { nativeSegwitAddress: nativeSegwitSigner.address, }); const pages = query.data?.pages; - const analytics = useAnalytics(); + const { ref: intersectionSentinel, inView } = useInView({ rootMargin: '0% 0% 20% 0%', }); @@ -54,7 +55,7 @@ export function Ordinals({ setIsLoadingMore }: OrdinalsProps) { }); void analytics.identify({ ordinals_count: inscriptionsLength }); } - }, [pages, analytics]); + }, [pages]); if (!pages) return null; diff --git a/src/app/features/collectibles/components/bitcoin/stamps.tsx b/src/app/features/collectibles/components/bitcoin/stamps.tsx index 2667249f1e8..d0c002ec913 100644 --- a/src/app/features/collectibles/components/bitcoin/stamps.tsx +++ b/src/app/features/collectibles/components/bitcoin/stamps.tsx @@ -2,7 +2,8 @@ import { useEffect } from 'react'; import { useStampsByAddress } from '@leather-wallet/query'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useCurrentAccountNativeSegwitAddressIndexZero } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { Stamp } from './stamp'; @@ -10,7 +11,6 @@ import { Stamp } from './stamp'; export function Stamps() { const currentAccountBtcAddress = useCurrentAccountNativeSegwitAddressIndexZero(); const { data: stamps = [] } = useStampsByAddress(currentAccountBtcAddress); - const analytics = useAnalytics(); useEffect(() => { if (!stamps.length) return; @@ -20,7 +20,7 @@ export function Stamps() { }); void analytics.identify({ stamps_count: stamps.length }); } - }, [analytics, stamps]); + }, [stamps]); if (!stamps.length) return null; diff --git a/src/app/features/collectibles/components/stacks/stacks-crypto-assets.tsx b/src/app/features/collectibles/components/stacks/stacks-crypto-assets.tsx index 13244ef881c..63b2ecd574f 100644 --- a/src/app/features/collectibles/components/stacks/stacks-crypto-assets.tsx +++ b/src/app/features/collectibles/components/stacks/stacks-crypto-assets.tsx @@ -5,7 +5,8 @@ import { useStacksNonFungibleTokensMetadata, } from '@leather-wallet/query'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { parseIfValidPunycode } from '@app/common/utils'; import { StacksBnsName } from './stacks-bns-name'; @@ -18,7 +19,6 @@ export function StacksCryptoAssets({ address }: StacksCryptoAssetsProps) { const names = useGetBnsNamesOwnedByAddressQuery(address).data?.names; const stacksNftsMetadataResp = useStacksNonFungibleTokensMetadata(address); - const analytics = useAnalytics(); useEffect(() => { if (stacksNftsMetadataResp.length > 0) { @@ -27,7 +27,7 @@ export function StacksCryptoAssets({ address }: StacksCryptoAssetsProps) { }); void analytics.identify({ stacks_nfts_count: stacksNftsMetadataResp.length }); } - }, [stacksNftsMetadataResp.length, analytics]); + }, [stacksNftsMetadataResp.length]); return ( <> diff --git a/src/app/features/container/container.tsx b/src/app/features/container/container.tsx index 481904699fa..b1c02332cfa 100644 --- a/src/app/features/container/container.tsx +++ b/src/app/features/container/container.tsx @@ -8,8 +8,9 @@ import { Box } from 'leather-styles/jsx'; import { RouteUrls } from '@shared/route-urls'; import { closeWindow } from '@shared/utils'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics, useInitalizeAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { useInitalizeAnalytics } from '@app/common/app-analytics'; import { LoadingSpinner } from '@app/components/loading-spinner'; import { CurrentAccountAvatar } from '@app/features/current-account/current-account-avatar'; import { CurrentAccountName } from '@app/features/current-account/current-account-name'; @@ -53,7 +54,7 @@ export function Container() { const navigate = useNavigate(); const { pathname: locationPathname } = useLocation(); const pathname = locationPathname as RouteUrls; - const analytics = useAnalytics(); + const hasStateRehydrated = useHasStateRehydrated(); const { chain, name: chainName } = useCurrentNetworkState(); @@ -62,7 +63,7 @@ export function Container() { useRestoreFormState(); useInitalizeAnalytics(); - useEffect(() => void analytics.page('view', `${pathname}`), [analytics, pathname]); + useEffect(() => void analytics.page('view', `${pathname}`), [pathname]); const variant = getPageVariant(pathname); diff --git a/src/app/features/dialogs/increase-fee-dialog/hooks/use-btc-increase-fee.ts b/src/app/features/dialogs/increase-fee-dialog/hooks/use-btc-increase-fee.ts index 3ef8593dfa6..448b45f921b 100644 --- a/src/app/features/dialogs/increase-fee-dialog/hooks/use-btc-increase-fee.ts +++ b/src/app/features/dialogs/increase-fee-dialog/hooks/use-btc-increase-fee.ts @@ -10,8 +10,8 @@ import { useBitcoinBroadcastTransaction } from '@leather-wallet/query'; import { btcToSat, createMoney, isError } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { queryClient } from '@app/common/persistence'; import { getBitcoinTxSizeEstimation, @@ -31,7 +31,6 @@ export function useBtcIncreaseFee(btcTx: BitcoinTx) { const toast = useToast(); const navigate = useNavigate(); const networkMode = useBitcoinScureLibNetworkConfig(); - const analytics = useAnalytics(); const { address: currentBitcoinAddress, publicKey } = useCurrentAccountNativeSegwitIndexZeroSigner(); diff --git a/src/app/features/dialogs/leather-intro-dialog/leather-intro-dialog.tsx b/src/app/features/dialogs/leather-intro-dialog/leather-intro-dialog.tsx index e5580954134..9763b9cc8c7 100644 --- a/src/app/features/dialogs/leather-intro-dialog/leather-intro-dialog.tsx +++ b/src/app/features/dialogs/leather-intro-dialog/leather-intro-dialog.tsx @@ -3,7 +3,8 @@ import { Outlet, Route, useNavigate } from 'react-router-dom'; import { delay } from '@leather-wallet/utils'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { openInNewTab } from '@app/common/utils/open-in-new-tab'; import { @@ -35,7 +36,6 @@ export function useLeatherIntroDialogContext() { } function LeatherIntroDialogContainer() { - const analytics = useAnalytics(); const navigate = useNavigate(); async function onRevealNewName() { void analytics.track('new_brand_reveal_name'); diff --git a/src/app/features/ledger/hooks/use-ledger-analytics.hook.ts b/src/app/features/ledger/hooks/use-ledger-analytics.hook.ts index fd50a12e94a..2efd89e7569 100644 --- a/src/app/features/ledger/hooks/use-ledger-analytics.hook.ts +++ b/src/app/features/ledger/hooks/use-ledger-analytics.hook.ts @@ -1,9 +1,8 @@ import { useMemo } from 'react'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; export function useLedgerAnalytics() { - const analytics = useAnalytics(); return useMemo( () => ({ trackDeviceVersionInfo(info: object) { @@ -25,6 +24,6 @@ export function useLedgerAnalytics() { void analytics.track('ledger_public_keys_pulled_from_device'); }, }), - [analytics] + [] ); } diff --git a/src/app/features/retrieve-taproot-to-native-segwit/retrieve-taproot-to-native-segwit.tsx b/src/app/features/retrieve-taproot-to-native-segwit/retrieve-taproot-to-native-segwit.tsx index cd1b55f94bb..f04e804a158 100644 --- a/src/app/features/retrieve-taproot-to-native-segwit/retrieve-taproot-to-native-segwit.tsx +++ b/src/app/features/retrieve-taproot-to-native-segwit/retrieve-taproot-to-native-segwit.tsx @@ -10,8 +10,8 @@ import { import { delay, formatMoneyPadded, truncateMiddle } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { FormAddressDisplayer } from '@app/components/address-displayer/form-address-displayer'; import { InfoCardRow, InfoCardSeparator } from '@app/components/info-card/info-card'; import { useToast } from '@app/features/toasts/use-toast'; @@ -44,7 +44,7 @@ export function RetrieveTaprootToNativeSegwit() { nativeSegwitAddress: nativeSegwitSigner.address, currentAccountIndex, }); - const analytics = useAnalytics(); + const { generateRetrieveTaprootFundsTx, fee } = useGenerateRetrieveTaprootFundsTx(); const { broadcastTx, isBroadcasting } = useBitcoinBroadcastTransaction(); diff --git a/src/app/features/secret-key-displayer/secret-key-displayer.tsx b/src/app/features/secret-key-displayer/secret-key-displayer.tsx index 302aedb2f1d..1531456b159 100644 --- a/src/app/features/secret-key-displayer/secret-key-displayer.tsx +++ b/src/app/features/secret-key-displayer/secret-key-displayer.tsx @@ -2,8 +2,8 @@ import { memo, useMemo } from 'react'; import { Outlet, useLocation, useNavigate } from 'react-router-dom'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { SecretKeyLayout } from '../../ui/components/secret-key/secret-key.layout'; @@ -14,7 +14,7 @@ interface SecretKeyProps { export const SecretKey = memo(({ secretKey }: SecretKeyProps) => { const { onCopy, hasCopied } = useClipboard(secretKey || ''); const { pathname } = useLocation(); - const analytics = useAnalytics(); + const navigate = useNavigate(); const copyToClipboard = () => { diff --git a/src/app/features/settings/network/network.tsx b/src/app/features/settings/network/network.tsx index aa4d5b95f82..8250881fdf3 100644 --- a/src/app/features/settings/network/network.tsx +++ b/src/app/features/settings/network/network.tsx @@ -5,8 +5,8 @@ import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { WalletDefaultNetworkConfigurationIds } from '@leather-wallet/models'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { NetworkListItem } from '@app/features/settings/network/network-list-item'; import { useCurrentNetworkState, useNetworksActions } from '@app/store/networks/networks.hooks'; import { useNetworks } from '@app/store/networks/networks.selectors'; @@ -24,7 +24,7 @@ interface NetworkDialogProps { export function NetworkDialog({ onClose }: NetworkDialogProps) { const navigate = useNavigate(); const networks = useNetworks(); - const analytics = useAnalytics(); + const networksActions = useNetworksActions(); const currentNetwork = useCurrentNetworkState(); diff --git a/src/app/features/settings/settings.tsx b/src/app/features/settings/settings.tsx index 78cafad2bbd..bab49dfb20e 100644 --- a/src/app/features/settings/settings.tsx +++ b/src/app/features/settings/settings.tsx @@ -6,8 +6,8 @@ import { css } from 'leather-styles/css'; import { Flex, Stack, styled } from 'leather-styles/jsx'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useKeyActions } from '@app/common/hooks/use-key-actions'; import { useModifierKey } from '@app/common/hooks/use-modifier-key'; import { useWalletType } from '@app/common/use-wallet-type'; @@ -54,7 +54,7 @@ export function Settings({ triggerButton, toggleSwitchAccount }: SettingsProps) const currentNetworkId = useCurrentNetworkId(); const navigate = useNavigate(); - const analytics = useAnalytics(); + const { walletType } = useWalletType(); const targetId = useLedgerDeviceTargetId(); diff --git a/src/app/features/settings/theme/theme-dialog.tsx b/src/app/features/settings/theme/theme-dialog.tsx index 56e37c38653..4ecbce67bdd 100644 --- a/src/app/features/settings/theme/theme-dialog.tsx +++ b/src/app/features/settings/theme/theme-dialog.tsx @@ -1,6 +1,7 @@ import { useCallback } from 'react'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { UserSelectedTheme, themeLabelMap, useThemeSwitcher } from '@app/common/theme-provider'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; @@ -13,7 +14,7 @@ interface ThemeDialogProps { export function ThemeDialog({ onClose }: ThemeDialogProps) { const themes = Object.keys(themeLabelMap) as UserSelectedTheme[]; - const analytics = useAnalytics(); + const { setUserSelectedTheme } = useThemeSwitcher(); const handleThemeSelected = useCallback( @@ -23,7 +24,7 @@ export function ThemeDialog({ onClose }: ThemeDialogProps) { }); setUserSelectedTheme(theme); }, - [analytics, setUserSelectedTheme] + [setUserSelectedTheme] ); const { userSelectedTheme } = useThemeSwitcher(); diff --git a/src/app/features/stacks-message-signer/use-sign-stacks-message.ts b/src/app/features/stacks-message-signer/use-sign-stacks-message.ts index 0e547994acb..721a5f0f9fd 100644 --- a/src/app/features/stacks-message-signer/use-sign-stacks-message.ts +++ b/src/app/features/stacks-message-signer/use-sign-stacks-message.ts @@ -4,8 +4,8 @@ import { SignatureData } from '@stacks/connect'; import { logger } from '@shared/logger'; import { UnsignedMessage } from '@shared/signature/signature-types'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useWalletType } from '@app/common/use-wallet-type'; import { useLedgerNavigate } from '@app/features/ledger/hooks/use-ledger-navigate'; import { @@ -23,7 +23,6 @@ export function useSignStacksMessage({ onSignMessageCompleted, onSignMessageCancelled, }: SignStacksMessageProps) { - const analytics = useAnalytics(); const signSoftwareWalletMessage = useMessageSignerStacksSoftwareWallet(); const { whenWallet } = useWalletType(); diff --git a/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx b/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx index 9f470c46a4b..e327dc921bf 100644 --- a/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx +++ b/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx @@ -17,8 +17,8 @@ import { stxToMicroStx } from '@leather-wallet/utils'; import { StacksTransactionFormValues } from '@shared/models/form.model'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useOnMount } from '@app/common/hooks/use-on-mount'; import { stxFeeValidator } from '@app/common/validation/forms/fee-validators'; import { nonceValidator } from '@app/common/validation/nonce-validators'; @@ -58,7 +58,7 @@ export function StacksTransactionSigner({ const [isShowingHighFeeConfirmation, setIsShowingHighFeeConfirmation] = useState(false); const transactionRequest = useTransactionRequestState(); const { data: stxFees } = useCalculateStacksTxFees(stacksTransaction); - const analytics = useAnalytics(); + const stxAddress = useCurrentStacksAccountAddress(); const availableUnlockedBalance = useStxAvailableUnlockedBalance(stxAddress); const navigate = useNavigate(); @@ -66,7 +66,7 @@ export function StacksTransactionSigner({ const { search } = useLocation(); useOnMount(() => { - void analytics.track('view_transaction_signing'), [analytics]; + void analytics.track('view_transaction_signing'), []; }); async function onSubmit( diff --git a/src/app/features/stacks-transaction-request/transaction-error/error-messages.tsx b/src/app/features/stacks-transaction-request/transaction-error/error-messages.tsx index fa82c937eb9..4e170fd8675 100644 --- a/src/app/features/stacks-transaction-request/transaction-error/error-messages.tsx +++ b/src/app/features/stacks-transaction-request/transaction-error/error-messages.tsx @@ -9,8 +9,8 @@ import { truncateMiddle } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; import { closeWindow } from '@shared/utils'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useScrollLock } from '@app/common/hooks/use-scroll-lock'; import { stacksValue } from '@app/common/stacks-utils'; import { SwitchAccountDialog } from '@app/features/dialogs/switch-account-dialog/switch-account-dialog'; @@ -25,7 +25,6 @@ interface InsufficientFundsActionButtonsProps { eventName: string; } function InsufficientFundsActionButtons({ eventName }: InsufficientFundsActionButtonsProps) { - const analytics = useAnalytics(); const [isShowingSwitchAccount, setIsShowingSwitchAccount] = useState(false); const onGetStx = () => { diff --git a/src/app/features/stacks-transaction-request/transaction-error/transaction-error.tsx b/src/app/features/stacks-transaction-request/transaction-error/transaction-error.tsx index 2eafa04d6f1..54797b4c59a 100644 --- a/src/app/features/stacks-transaction-request/transaction-error/transaction-error.tsx +++ b/src/app/features/stacks-transaction-request/transaction-error/transaction-error.tsx @@ -1,6 +1,7 @@ import { Suspense, memo, useEffect } from 'react'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useTransactionError } from '@app/features/stacks-transaction-request/hooks/use-transaction-error'; import { @@ -25,14 +26,13 @@ export enum TransactionErrorReason { const TransactionErrorSuspense = memo(() => { const reason = useTransactionError(); - const analytics = useAnalytics(); useEffect(() => { if (!reason) return; void analytics.track('view_transaction_signing_error', { reason: TransactionErrorReason[reason].toLowerCase(), }); - }, [analytics, reason]); + }, [reason]); if (!reason) return null; diff --git a/src/app/pages/fund/fiat-providers-list.tsx b/src/app/pages/fund/fiat-providers-list.tsx index 3c3afead517..4fdad339de1 100644 --- a/src/app/pages/fund/fiat-providers-list.tsx +++ b/src/app/pages/fund/fiat-providers-list.tsx @@ -4,7 +4,8 @@ import { Grid } from 'leather-styles/jsx'; import type { CryptoCurrencies } from '@leather-wallet/models'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { openInNewTab } from '@app/common/utils/open-in-new-tab'; import { LoadingSpinner } from '@app/components/loading-spinner'; import { @@ -26,7 +27,7 @@ export function FiatProvidersList(props: FiatProvidersProps) { const navigate = useNavigate(); const activeProviders = useActiveFiatProviders(); const hasProviders = useHasFiatProviders(); - const analytics = useAnalytics(); + const location = useLocation(); const goToProviderExternalWebsite = (provider: string, providerUrl: string) => { diff --git a/src/app/pages/onboarding/set-password/set-password.tsx b/src/app/pages/onboarding/set-password/set-password.tsx index 3883f3ef819..e6eca84e1b2 100644 --- a/src/app/pages/onboarding/set-password/set-password.tsx +++ b/src/app/pages/onboarding/set-password/set-password.tsx @@ -9,9 +9,9 @@ import * as yup from 'yup'; import { isUndefined } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; import { useFinishAuthRequest } from '@app/common/authentication/use-finish-auth-request'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useOnboardingState } from '@app/common/hooks/auth/use-onboarding-state'; import { useKeyActions } from '@app/common/hooks/use-key-actions'; import { @@ -49,11 +49,10 @@ function SetPasswordPage() { const finishSignIn = useFinishAuthRequest(); const navigate = useNavigate(); const { decodedAuthRequest } = useOnboardingState(); - const analytics = useAnalytics(); useEffect(() => { void analytics.page('view', '/set-password'); - }, [analytics]); + }, []); const submit = useCallback( async (password: string) => { @@ -85,7 +84,7 @@ function SetPasswordPage() { } setLoading(false); }, - [strengthResult, submit, analytics] + [strengthResult, submit] ); const validationSchema = yup.object({ diff --git a/src/app/pages/onboarding/sign-in/hooks/use-sign-in.ts b/src/app/pages/onboarding/sign-in/hooks/use-sign-in.ts index 39d6cfa02d0..c9e61511ceb 100644 --- a/src/app/pages/onboarding/sign-in/hooks/use-sign-in.ts +++ b/src/app/pages/onboarding/sign-in/hooks/use-sign-in.ts @@ -7,8 +7,8 @@ import { wordlist } from '@scure/bip39/wordlists/english'; import { delay } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useLoading } from '@app/common/hooks/use-loading'; import { useAppDispatch } from '@app/store'; import { inMemoryKeyActions } from '@app/store/in-memory-key/in-memory-key.actions'; @@ -24,7 +24,6 @@ export function useSignIn() { const { isLoading, setIsLoading, setIsIdle } = useLoading('useSignIn'); const navigate = useNavigate(); - const analytics = useAnalytics(); const textAreaRef = useRef(null); @@ -39,7 +38,7 @@ export function useSignIn() { void analytics.track('submit_invalid_secret_key'); return; }, - [analytics, setError, setIsIdle] + [setError, setIsIdle] ); const submitMnemonicForm = useCallback( @@ -64,7 +63,7 @@ export function useSignIn() { navigate(RouteUrls.SetPassword); setIsIdle(); }, - [setIsLoading, dispatch, analytics, navigate, setIsIdle, handleSetError] + [setIsLoading, dispatch, navigate, setIsIdle, handleSetError] ); const toggleKeyMask = useCallback(() => { diff --git a/src/app/pages/onboarding/welcome/welcome.tsx b/src/app/pages/onboarding/welcome/welcome.tsx index b9431d15d6d..5b1b4c98de5 100644 --- a/src/app/pages/onboarding/welcome/welcome.tsx +++ b/src/app/pages/onboarding/welcome/welcome.tsx @@ -3,8 +3,8 @@ import { Outlet, useNavigate } from 'react-router-dom'; import { RouteUrls } from '@shared/route-urls'; import { closeWindow } from '@shared/utils'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useOnboardingState } from '@app/common/hooks/auth/use-onboarding-state'; import { useKeyActions } from '@app/common/hooks/use-key-actions'; import { doesBrowserSupportWebUsbApi, isPopupMode, whenPageMode } from '@app/common/utils'; @@ -14,7 +14,7 @@ import { WelcomeLayout } from '@app/ui/pages/welcome.layout'; export function WelcomePage() { const navigate = useNavigate(); const { decodedAuthRequest } = useOnboardingState(); - const analytics = useAnalytics(); + const keyActions = useKeyActions(); const [isGeneratingWallet, setIsGeneratingWallet] = useState(false); @@ -34,7 +34,7 @@ export function WelcomePage() { navigate(RouteUrls.SetPassword); } navigate(RouteUrls.BackUpSecretKey); - }, [keyActions, analytics, decodedAuthRequest, navigate]); + }, [keyActions, decodedAuthRequest, navigate]); useEffect(() => { return () => setIsGeneratingWallet(false); diff --git a/src/app/pages/psbt-request/use-psbt-request.tsx b/src/app/pages/psbt-request/use-psbt-request.tsx index 8233253586b..9f20c0b895b 100644 --- a/src/app/pages/psbt-request/use-psbt-request.tsx +++ b/src/app/pages/psbt-request/use-psbt-request.tsx @@ -7,15 +7,15 @@ import { isError } from '@leather-wallet/utils'; import { finalizePsbt } from '@shared/actions/finalize-psbt'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { usePsbtRequestSearchParams } from '@app/common/psbt/use-psbt-request-params'; import { usePsbtSigner } from '@app/features/psbt-signer/hooks/use-psbt-signer'; import { useGetAssumedZeroIndexSigningConfig } from '@app/store/accounts/blockchain/bitcoin/bitcoin.hooks'; export function usePsbtRequest() { const [isLoading, setIsLoading] = useState(false); - const analytics = useAnalytics(); + const navigate = useNavigate(); const { appName, origin, payload, requestToken, signAtIndex, tabId } = usePsbtRequestSearchParams(); @@ -71,7 +71,6 @@ export function usePsbtRequest() { getRawPsbt, origin, payload.hex, - analytics, requestToken, tabId, getPsbtAsTransaction, diff --git a/src/app/pages/receive/receive-btc.tsx b/src/app/pages/receive/receive-btc.tsx index ee4bf21c0cd..ddc801e3dae 100644 --- a/src/app/pages/receive/receive-btc.tsx +++ b/src/app/pages/receive/receive-btc.tsx @@ -2,7 +2,8 @@ import { useLocation } from 'react-router-dom'; import get from 'lodash.get'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { copyToClipboard } from '@app/common/utils/copy-to-clipboard'; import { useToast } from '@app/features/toasts/use-toast'; import { useBackgroundLocationRedirect } from '@app/routes/hooks/use-background-location-redirect'; @@ -17,7 +18,7 @@ interface ReceiveBtcModalType { export function ReceiveBtcModal({ type = 'btc' }: ReceiveBtcModalType) { useBackgroundLocationRedirect(); - const analytics = useAnalytics(); + const { state } = useLocation(); const toast = useToast(); diff --git a/src/app/pages/receive/receive-dialog.tsx b/src/app/pages/receive/receive-dialog.tsx index 390f7463b99..f98524bd491 100644 --- a/src/app/pages/receive/receive-dialog.tsx +++ b/src/app/pages/receive/receive-dialog.tsx @@ -5,8 +5,8 @@ import { Box } from 'leather-styles/jsx'; import get from 'lodash.get'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useLocationState } from '@app/common/hooks/use-location-state'; import { useBackgroundLocationRedirect } from '@app/routes/hooks/use-background-location-redirect'; import { useZeroIndexTaprootAddress } from '@app/store/accounts/blockchain/bitcoin/bitcoin.hooks'; @@ -34,7 +34,7 @@ interface ReceiveDialogProps { export function ReceiveDialog({ type = 'full' }: ReceiveDialogProps) { useBackgroundLocationRedirect(); - const analytics = useAnalytics(); + const backgroundLocation = useLocationState('backgroundLocation'); const navigate = useNavigate(); const location = useLocation(); diff --git a/src/app/pages/receive/receive-ordinal.tsx b/src/app/pages/receive/receive-ordinal.tsx index ddcaae56a0d..9e7f6bac62c 100644 --- a/src/app/pages/receive/receive-ordinal.tsx +++ b/src/app/pages/receive/receive-ordinal.tsx @@ -1,6 +1,7 @@ import { useLocation } from 'react-router-dom'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { copyToClipboard } from '@app/common/utils/copy-to-clipboard'; import { useToast } from '@app/features/toasts/use-toast'; import { useBackgroundLocationRedirect } from '@app/routes/hooks/use-background-location-redirect'; @@ -11,7 +12,7 @@ import { ReceiveTokensLayout } from './components/receive-tokens.layout'; export function ReceiveOrdinalModal() { useBackgroundLocationRedirect(); const toast = useToast(); - const analytics = useAnalytics(); + const { state } = useLocation(); // #4028 FIXME - this doesn't open in new tab as it loses btcAddressTaproot amd crashes btcStamp and Stx are OK? diff --git a/src/app/pages/receive/receive-stx.tsx b/src/app/pages/receive/receive-stx.tsx index 10002950e75..dd79c550638 100644 --- a/src/app/pages/receive/receive-stx.tsx +++ b/src/app/pages/receive/receive-stx.tsx @@ -1,5 +1,6 @@ +import { analytics } from '@shared/utils/analytics'; + import { useCurrentAccountDisplayName } from '@app/common/hooks/account/use-account-names'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { copyToClipboard } from '@app/common/utils/copy-to-clipboard'; import { useToast } from '@app/features/toasts/use-toast'; import { useBackgroundLocationRedirect } from '@app/routes/hooks/use-background-location-redirect'; @@ -11,7 +12,7 @@ export function ReceiveStxModal() { useBackgroundLocationRedirect(); const toast = useToast(); const currentAccount = useCurrentStacksAccount(); - const analytics = useAnalytics(); + const accountName = useCurrentAccountDisplayName(); if (!currentAccount) return null; diff --git a/src/app/pages/rpc-get-addresses/use-request-accounts.ts b/src/app/pages/rpc-get-addresses/use-request-accounts.ts index a24e28379f3..928f984ddce 100644 --- a/src/app/pages/rpc-get-addresses/use-request-accounts.ts +++ b/src/app/pages/rpc-get-addresses/use-request-accounts.ts @@ -6,8 +6,8 @@ import { ecdsaPublicKeyToSchnorr } from '@leather-wallet/bitcoin'; import { logger } from '@shared/logger'; import { makeRpcSuccessResponse } from '@shared/rpc/rpc-methods'; import { closeWindow } from '@shared/utils'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useRpcRequestParams } from '@app/common/rpc-helpers'; import { useCurrentAccountNativeSegwitSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { useCurrentAccountTaprootSigner } from '@app/store/accounts/blockchain/bitcoin/taproot-account.hooks'; @@ -15,8 +15,6 @@ import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/s import { useAppPermissions } from '@app/store/app-permissions/app-permissions.slice'; export function useGetAddresses() { - const analytics = useAnalytics(); - const permissions = useAppPermissions(); const { tabId, origin, requestId } = useRpcRequestParams(); diff --git a/src/app/pages/rpc-send-transfer/rpc-send-transfer-confirmation.tsx b/src/app/pages/rpc-send-transfer/rpc-send-transfer-confirmation.tsx index cd1db1965d0..1e204bbda81 100644 --- a/src/app/pages/rpc-send-transfer/rpc-send-transfer-confirmation.tsx +++ b/src/app/pages/rpc-send-transfer/rpc-send-transfer-confirmation.tsx @@ -24,8 +24,8 @@ import { logger } from '@shared/logger'; import type { TransferRecipient } from '@shared/models/form.model'; import { RouteUrls } from '@shared/route-urls'; import { makeRpcSuccessResponse } from '@shared/rpc/rpc-methods'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { InfoCardFooter } from '@app/components/info-card/info-card'; import { useCurrentNativeSegwitUtxos } from '@app/query/bitcoin/address/utxos-by-address.hooks'; import { useCurrentAccountNativeSegwitAddressIndexZero } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; @@ -48,7 +48,6 @@ function useRpcSendTransferConfirmationState() { } export function RpcSendTransferConfirmation() { - const analytics = useAnalytics(); const navigate = useNavigate(); const { origin, requestId, tabId } = useRpcSendTransferRequestParams(); const { fee, recipients, time, tx, feeRowValue } = useRpcSendTransferConfirmationState(); diff --git a/src/app/pages/rpc-send-transfer/rpc-send-transfer-summary.tsx b/src/app/pages/rpc-send-transfer/rpc-send-transfer-summary.tsx index 66188bd2590..5ce3f9044fd 100644 --- a/src/app/pages/rpc-send-transfer/rpc-send-transfer-summary.tsx +++ b/src/app/pages/rpc-send-transfer/rpc-send-transfer-summary.tsx @@ -3,8 +3,8 @@ import { useLocation } from 'react-router-dom'; import { HStack, Stack } from 'leather-styles/jsx'; import type { TransferRecipient } from '@shared/models/form.model'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { FormAddressDisplayer } from '@app/components/address-displayer/form-address-displayer'; @@ -24,7 +24,7 @@ import { Card } from '@app/ui/layout/card/card'; export function RpcSendTransferSummary() { const { state } = useLocation(); const { handleOpenBitcoinTxLink: handleOpenTxLink } = useBitcoinExplorerLink(); - const analytics = useAnalytics(); + const toast = useToast(); const { diff --git a/src/app/pages/rpc-sign-bip322-message/use-sign-bip322-message.ts b/src/app/pages/rpc-sign-bip322-message/use-sign-bip322-message.ts index 0b53d5d0570..562578989e9 100644 --- a/src/app/pages/rpc-sign-bip322-message/use-sign-bip322-message.ts +++ b/src/app/pages/rpc-sign-bip322-message/use-sign-bip322-message.ts @@ -9,8 +9,8 @@ import { signBip322MessageSimple } from '@leather-wallet/bitcoin'; import { logger } from '@shared/logger'; import { makeRpcErrorResponse, makeRpcSuccessResponse } from '@shared/rpc/rpc-methods'; import { closeWindow, createDelay } from '@shared/utils'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useDefaultRequestParams } from '@app/common/hooks/use-default-request-search-params'; import { initialSearchParams } from '@app/common/initial-search-params'; import { useToast } from '@app/features/toasts/use-toast'; @@ -50,7 +50,7 @@ interface SignBip322MessageFactoryArgs { } function useSignBip322MessageFactory({ address, signPsbt }: SignBip322MessageFactoryArgs) { const network = useCurrentNetwork(); - const analytics = useAnalytics(); + const [isLoading, setIsLoading] = useState(false); const toast = useToast(); diff --git a/src/app/pages/rpc-sign-psbt/rpc-sign-psbt-summary.tsx b/src/app/pages/rpc-sign-psbt/rpc-sign-psbt-summary.tsx index 3dd5f5697ad..e988fb141ea 100644 --- a/src/app/pages/rpc-sign-psbt/rpc-sign-psbt-summary.tsx +++ b/src/app/pages/rpc-sign-psbt/rpc-sign-psbt-summary.tsx @@ -2,7 +2,8 @@ import { useLocation } from 'react-router-dom'; import { Flex, HStack, Stack } from 'leather-styles/jsx'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { @@ -20,7 +21,7 @@ import { Card } from '@app/ui/layout/card/card'; export function RpcSignPsbtSummary() { const { state } = useLocation(); const { handleOpenBitcoinTxLink: handleOpenTxLink } = useBitcoinExplorerLink(); - const analytics = useAnalytics(); + const toast = useToast(); const { fee, sendingValue, totalSpend, txId, txFiatValue, txFiatValueSymbol, txLink, txValue } = diff --git a/src/app/pages/rpc-sign-psbt/use-rpc-sign-psbt.tsx b/src/app/pages/rpc-sign-psbt/use-rpc-sign-psbt.tsx index c1def96b783..d94cfc4ed77 100644 --- a/src/app/pages/rpc-sign-psbt/use-rpc-sign-psbt.tsx +++ b/src/app/pages/rpc-sign-psbt/use-rpc-sign-psbt.tsx @@ -21,8 +21,8 @@ import { import { RouteUrls } from '@shared/route-urls'; import { makeRpcErrorResponse, makeRpcSuccessResponse } from '@shared/rpc/rpc-methods'; import { closeWindow } from '@shared/utils'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { SignPsbtArgs } from '@app/common/psbt/requests'; import { useRpcSignPsbtParams } from '@app/common/psbt/use-psbt-request-params'; import { usePsbtSigner } from '@app/features/psbt-signer/hooks/use-psbt-signer'; @@ -36,7 +36,6 @@ interface BroadcastSignedPsbtTxArgs { tx: string; } export function useRpcSignPsbt() { - const analytics = useAnalytics(); const navigate = useNavigate(); const { broadcast, origin, psbtHex, requestId, signAtIndex, tabId } = useRpcSignPsbtParams(); const { signPsbt, getPsbtAsTransaction } = usePsbtSigner(); diff --git a/src/app/pages/rpc-sign-stacks-message/use-rpc-sign-stacks-message.ts b/src/app/pages/rpc-sign-stacks-message/use-rpc-sign-stacks-message.ts index e64dc826d2f..92bc3df3dbe 100644 --- a/src/app/pages/rpc-sign-stacks-message/use-rpc-sign-stacks-message.ts +++ b/src/app/pages/rpc-sign-stacks-message/use-rpc-sign-stacks-message.ts @@ -11,8 +11,8 @@ import { isUtf8MessageType, } from '@shared/signature/signature-types'; import { closeWindow } from '@shared/utils'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useDefaultRequestParams } from '@app/common/hooks/use-default-request-search-params'; import { initialSearchParams } from '@app/common/initial-search-params'; import { @@ -86,8 +86,6 @@ export function useRpcSignStacksMessageParams() { } export function useRpcSignStacksMessage() { - const analytics = useAnalytics(); - const { tabId, requestId } = useRpcSignStacksMessageParams(); if (!tabId) throw new Error('Requests can only be made with corresponding tab'); diff --git a/src/app/pages/send/broadcast-error/broadcast-error.tsx b/src/app/pages/send/broadcast-error/broadcast-error.tsx index 092f61f7ed6..7d73123c5e0 100644 --- a/src/app/pages/send/broadcast-error/broadcast-error.tsx +++ b/src/app/pages/send/broadcast-error/broadcast-error.tsx @@ -2,14 +2,15 @@ import { useLocation } from 'react-router-dom'; import get from 'lodash.get'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useOnMount } from '@app/common/hooks/use-on-mount'; import { BroadcastErrorLayout } from './components/broadcast-error.layout'; export function BroadcastError() { const { state } = useLocation(); - const analytics = useAnalytics(); + const msg = get(state, 'error.message', 'Unknown error response'); const title = get(state, 'title', 'There was an error broadcasting your transaction'); const body = get(state, 'body', 'Unable to broadcast transaction'); diff --git a/src/app/pages/send/locked-bitcoin-summary/locked-bitcoin-summary.tsx b/src/app/pages/send/locked-bitcoin-summary/locked-bitcoin-summary.tsx index 0cb32d8ef51..a21c4c5ad73 100644 --- a/src/app/pages/send/locked-bitcoin-summary/locked-bitcoin-summary.tsx +++ b/src/app/pages/send/locked-bitcoin-summary/locked-bitcoin-summary.tsx @@ -4,7 +4,8 @@ import { HStack, styled } from 'leather-styles/jsx'; import { satToBtc } from '@leather-wallet/utils'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { InfoCardAssetValue, InfoCardBtn } from '@app/components/info-card/info-card'; @@ -24,7 +25,6 @@ export function LockBitcoinSummary() { const { onCopy } = useClipboard(txId); const { handleOpenBitcoinTxLink: handleOpenTxLink } = useBitcoinExplorerLink(); - const analytics = useAnalytics(); function onClickLink() { void analytics.track('view_transaction_confirmation', { symbol: 'BTC' }); diff --git a/src/app/pages/send/ordinal-inscription/hooks/use-send-inscription-form.tsx b/src/app/pages/send/ordinal-inscription/hooks/use-send-inscription-form.tsx index 003f00f13c3..1a842f69f52 100644 --- a/src/app/pages/send/ordinal-inscription/hooks/use-send-inscription-form.tsx +++ b/src/app/pages/send/ordinal-inscription/hooks/use-send-inscription-form.tsx @@ -11,8 +11,8 @@ import { FormErrorMessages } from '@shared/error-messages'; import { logger } from '@shared/logger'; import { OrdinalSendFormValues } from '@shared/models/form.model'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { formFeeRowValue } from '@app/common/send/utils'; import { InsufficientFundsError } from '@app/common/transactions/bitcoin/coinselect/local-coin-selection'; import { @@ -32,7 +32,7 @@ import { useGenerateUnsignedOrdinalTx } from './use-generate-ordinal-tx'; export function useSendInscriptionForm() { const [currentError, setShowError] = useState(null); const [isCheckingFees, setIsCheckingFees] = useState(false); - const analytics = useAnalytics(); + const navigate = useNavigate(); const sign = useSignBitcoinTx(); const { inscription, utxo } = useSendInscriptionState(); diff --git a/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx b/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx index 14a25880e08..8e45474988a 100644 --- a/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx +++ b/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx @@ -7,8 +7,8 @@ import get from 'lodash.get'; import { useBitcoinBroadcastTransaction } from '@leather-wallet/query'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { FormAddressDisplayer } from '@app/components/address-displayer/form-address-displayer'; import { InfoCardRow, InfoCardSeparator } from '@app/components/info-card/info-card'; import { InscriptionPreview } from '@app/components/inscription-preview-card/components/inscription-preview'; @@ -35,7 +35,6 @@ function useSendInscriptionReviewState() { } export function SendInscriptionReview() { - const analytics = useAnalytics(); const navigate = useNavigate(); const dispatch = useAppDispatch(); const { arrivesIn, signedTx, recipient, feeRowValue } = useSendInscriptionReviewState(); diff --git a/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx b/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx index 74f3f09a351..bdccadbf3f6 100644 --- a/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx +++ b/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx @@ -6,8 +6,8 @@ import get from 'lodash.get'; import type { Blockchains, Inscription } from '@leather-wallet/models'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; import { copyToClipboard } from '@app/common/utils/copy-to-clipboard'; import { FormAddressDisplayer } from '@app/components/address-displayer/form-address-displayer'; @@ -46,7 +46,6 @@ export function SendInscriptionSummary() { const id = txid || ''; const { handleOpenBitcoinTxLink: handleOpenTxLink } = useBitcoinExplorerLink(); - const analytics = useAnalytics(); function onClickLink() { void analytics.track('view_transaction_confirmation', { symbol: 'BTC' }); diff --git a/src/app/pages/send/send-crypto-asset-form/components/recipient-fields/components/recipient-address-displayer.tsx b/src/app/pages/send/send-crypto-asset-form/components/recipient-fields/components/recipient-address-displayer.tsx index 4510ac690f3..1ba164382a3 100644 --- a/src/app/pages/send/send-crypto-asset-form/components/recipient-fields/components/recipient-address-displayer.tsx +++ b/src/app/pages/send/send-crypto-asset-form/components/recipient-fields/components/recipient-address-displayer.tsx @@ -3,7 +3,8 @@ import { useCallback } from 'react'; import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; import { HStack, styled } from 'leather-styles/jsx'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; import { CopyIcon } from '@app/ui/icons/copy-icon'; @@ -12,13 +13,12 @@ interface RecipientAddressDisplayerProps { address: string; } export function RecipientAddressDisplayer({ address }: RecipientAddressDisplayerProps) { - const analytics = useAnalytics(); const { onCopy, hasCopied } = useClipboard(address); const copyToClipboard = useCallback(() => { void analytics.track('copy_recipient_bns_address_to_clipboard'); onCopy(); - }, [analytics, onCopy]); + }, [onCopy]); return ( diff --git a/src/app/pages/send/send-crypto-asset-form/components/send-max-button.tsx b/src/app/pages/send/send-crypto-asset-form/components/send-max-button.tsx index 91f071497c2..8249bb07ac5 100644 --- a/src/app/pages/send/send-crypto-asset-form/components/send-max-button.tsx +++ b/src/app/pages/send/send-crypto-asset-form/components/send-max-button.tsx @@ -6,7 +6,8 @@ import { Box } from 'leather-styles/jsx'; import type { Money } from '@leather-wallet/models'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useToast } from '@app/features/toasts/use-toast'; import { Link } from '@app/ui/components/link/link'; @@ -18,8 +19,6 @@ export function SendMaxButton({ balance, sendMaxBalance, ...props }: SendMaxButt const [, _, amountFieldHelpers] = useField('amount'); const toast = useToast(); - const analytics = useAnalytics(); - const onSendMax = useCallback(() => { void analytics.track('select_maximum_amount_for_send'); if (balance.amount.isLessThanOrEqualTo(0)) { @@ -27,7 +26,7 @@ export function SendMaxButton({ balance, sendMaxBalance, ...props }: SendMaxButt return; } return amountFieldHelpers.setValue(sendMaxBalance); - }, [amountFieldHelpers, analytics, balance.amount, sendMaxBalance, toast]); + }, [amountFieldHelpers, balance.amount, sendMaxBalance, toast]); // Hide send max button if lowest fee calc is greater // than available balance which will default to zero diff --git a/src/app/pages/send/send-crypto-asset-form/family/bitcoin/hooks/use-send-max.tsx b/src/app/pages/send/send-crypto-asset-form/family/bitcoin/hooks/use-send-max.tsx index 8eea98314d2..3aa545a8ac9 100644 --- a/src/app/pages/send/send-crypto-asset-form/family/bitcoin/hooks/use-send-max.tsx +++ b/src/app/pages/send/send-crypto-asset-form/family/bitcoin/hooks/use-send-max.tsx @@ -4,7 +4,8 @@ import { useField } from 'formik'; import type { Money } from '@leather-wallet/models'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useToast } from '@app/features/toasts/use-toast'; interface UseSendMaxArgs { @@ -25,8 +26,6 @@ export function useSendMax({ const [, __, feeFieldHelpers] = useField('fee'); const toast = useToast(); - const analytics = useAnalytics(); - return useCallback(() => { void analytics.track('select_maximum_amount_for_send'); if (balance.amount.isLessThanOrEqualTo(0)) { @@ -40,7 +39,6 @@ export function useSendMax({ amountFieldHelpers.setError(undefined); }, [ amountFieldHelpers, - analytics, balance.amount, feeFieldHelpers, isSendingMax, diff --git a/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form-confirmation.tsx b/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form-confirmation.tsx index 538c488a644..98f83ef3b4e 100644 --- a/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form-confirmation.tsx +++ b/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form-confirmation.tsx @@ -9,8 +9,8 @@ import { useBitcoinBroadcastTransaction } from '@leather-wallet/query'; import { createMoney, formatMoney, formatMoneyPadded, sumMoney } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { InfoCardAssetValue, InfoCardRow, @@ -43,7 +43,6 @@ function useBrc20SendFormConfirmationState() { export function Brc20SendFormConfirmation() { const navigate = useNavigate(); - const analytics = useAnalytics(); const { amount, recipient, fee, ticker, serviceFee, tx, orderId, feeRowValue, holderAddress } = useBrc20SendFormConfirmationState(); diff --git a/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form-confirmation.tsx b/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form-confirmation.tsx index 5f6c5039399..41851b1ae68 100644 --- a/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form-confirmation.tsx +++ b/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form-confirmation.tsx @@ -24,8 +24,8 @@ import { } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { queryClient } from '@app/common/persistence'; import { FormAddressDisplayer } from '@app/components/address-displayer/form-address-displayer'; import { @@ -61,7 +61,6 @@ export function BtcSendFormConfirmation() { const transaction = useMemo(() => btc.Transaction.fromRaw(hexToBytes(tx)), [tx]); const { refetch } = useCurrentNativeSegwitUtxos(); - const analytics = useAnalytics(); const btcMarketData = useCryptoCurrencyMarketDataMeanAverage('BTC'); const { broadcastTx, isBroadcasting } = useBitcoinBroadcastTransaction(); diff --git a/src/app/pages/send/sent-summary/btc-sent-summary.tsx b/src/app/pages/send/sent-summary/btc-sent-summary.tsx index a0cbc75f019..e8e6e2f4e5c 100644 --- a/src/app/pages/send/sent-summary/btc-sent-summary.tsx +++ b/src/app/pages/send/sent-summary/btc-sent-summary.tsx @@ -2,7 +2,8 @@ import { useLocation } from 'react-router-dom'; import { HStack, Stack } from 'leather-styles/jsx'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { FormAddressDisplayer } from '@app/components/address-displayer/form-address-displayer'; @@ -23,7 +24,7 @@ import { TxDone } from '../send-crypto-asset-form/components/tx-done'; export function BtcSentSummary() { const { state } = useLocation(); - const analytics = useAnalytics(); + const toast = useToast(); const { diff --git a/src/app/pages/send/sent-summary/stx-sent-summary.tsx b/src/app/pages/send/sent-summary/stx-sent-summary.tsx index f70f07f01b6..cad41f948ac 100644 --- a/src/app/pages/send/sent-summary/stx-sent-summary.tsx +++ b/src/app/pages/send/sent-summary/stx-sent-summary.tsx @@ -2,7 +2,8 @@ import { useLocation } from 'react-router-dom'; import { HStack, Stack } from 'leather-styles/jsx'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { useStacksExplorerLink } from '@app/common/hooks/use-stacks-explorer-link'; import { FormAddressDisplayer } from '@app/components/address-displayer/form-address-displayer'; @@ -23,7 +24,7 @@ import { TxDone } from '../send-crypto-asset-form/components/tx-done'; export function StxSentSummary() { const { state } = useLocation(); - const analytics = useAnalytics(); + const toast = useToast(); const { diff --git a/src/app/pages/sign-stacks-message-request/use-sign-stacks-message-request.ts b/src/app/pages/sign-stacks-message-request/use-sign-stacks-message-request.ts index 08cab05368a..220bc0aaf7a 100644 --- a/src/app/pages/sign-stacks-message-request/use-sign-stacks-message-request.ts +++ b/src/app/pages/sign-stacks-message-request/use-sign-stacks-message-request.ts @@ -1,7 +1,7 @@ import { finalizeMessageSignature } from '@shared/actions/finalize-message-signature'; import { isStructuredMessageType, isUtf8MessageType } from '@shared/signature/signature-types'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { getSignaturePayloadFromToken, getStructuredDataPayloadFromToken, @@ -45,8 +45,6 @@ export function useStacksMessageRequestPayload() { } export function useSignStacksMessageRequest() { - const analytics = useAnalytics(); - const { requestToken, tabId } = useSignatureRequestSearchParams(); if (!tabId) throw new Error('Requests can only be made with corresponding tab'); if (!requestToken) throw new Error('Missing request token'); diff --git a/src/app/pages/transaction-request/transaction-request.tsx b/src/app/pages/transaction-request/transaction-request.tsx index 331c2c646e3..5208f2ff663 100644 --- a/src/app/pages/transaction-request/transaction-request.tsx +++ b/src/app/pages/transaction-request/transaction-request.tsx @@ -16,8 +16,8 @@ import { import { logger } from '@shared/logger'; import { StacksTransactionFormValues } from '@shared/models/form.model'; import { RouteUrls } from '@shared/route-urls'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useOnMount } from '@app/common/hooks/use-on-mount'; import { stxFeeValidator } from '@app/common/validation/forms/fee-validators'; import { nonceValidator } from '@app/common/validation/nonce-validators'; @@ -49,7 +49,7 @@ function TransactionRequestBase() { const transactionRequest = useTransactionRequestState(); const unsignedTx = useUnsignedStacksTransactionBaseState(); const { data: stxFees } = useCalculateStacksTxFees(unsignedTx.transaction); - const analytics = useAnalytics(); + const generateUnsignedTx = useGenerateUnsignedStacksTransaction(); const stxAddress = useCurrentStacksAccountAddress(); const availableUnlockedBalance = useStxAvailableUnlockedBalance(stxAddress); diff --git a/src/app/pages/update-profile-request/components/update-action.tsx b/src/app/pages/update-profile-request/components/update-action.tsx index 3984df897ea..e48a8125cc3 100644 --- a/src/app/pages/update-profile-request/components/update-action.tsx +++ b/src/app/pages/update-profile-request/components/update-action.tsx @@ -13,8 +13,8 @@ import { import { gaiaUrl } from '@leather-wallet/constants'; import { finalizeProfileUpdate } from '@shared/actions/finalize-profile-update'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; import { useProfileUpdateRequestSearchParams } from '@app/store/profiles/requests.hooks'; @@ -64,7 +64,6 @@ export function UpdateAction({ const { tabId, requestToken } = useProfileUpdateRequestSearchParams(); const updateProfileSoftwareWallet = useUpdateProfileSoftwareWallet(); const [isLoading, setIsLoading] = useState(false); - const analytics = useAnalytics(); if (!requestToken || !tabId) return null; diff --git a/src/app/pages/view-secret-key/view-secret-key.tsx b/src/app/pages/view-secret-key/view-secret-key.tsx index f2e0684848d..1e6a6eb74d4 100644 --- a/src/app/pages/view-secret-key/view-secret-key.tsx +++ b/src/app/pages/view-secret-key/view-secret-key.tsx @@ -1,20 +1,20 @@ import { useEffect, useState } from 'react'; import { Outlet } from 'react-router-dom'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; +import { analytics } from '@shared/utils/analytics'; + import { RequestPassword } from '@app/components/request-password'; import { SecretKey } from '@app/features/secret-key-displayer/secret-key-displayer'; import { useDefaultWalletSecretKey } from '@app/store/in-memory-key/in-memory-key.selectors'; import { TwoColumnLayout } from '@app/ui/pages/two-column.layout'; export function ViewSecretKey() { - const analytics = useAnalytics(); const defaultWalletSecretKey = useDefaultWalletSecretKey(); const [showSecretKey, setShowSecretKey] = useState(false); useEffect(() => { void analytics.page('view', '/save-secret-key'); - }, [analytics]); + }, []); if (showSecretKey) { return ( diff --git a/src/app/query/common/compliance-checker/compliance-checker.query.ts b/src/app/query/common/compliance-checker/compliance-checker.query.ts index ef4bfa1e058..3cec5c6fc2b 100644 --- a/src/app/query/common/compliance-checker/compliance-checker.query.ts +++ b/src/app/query/common/compliance-checker/compliance-checker.query.ts @@ -6,7 +6,6 @@ import { ensureArray } from '@leather-wallet/utils'; import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { useCurrentNetwork } from '@app/store/networks/networks.selectors'; @@ -77,7 +76,6 @@ function useCheckAddressComplianceQueries(addresses: string[]) { export const compliantErrorBody = 'Unable to handle request, errorCode: 1398'; export function useBreakOnNonCompliantEntity(address: string | string[]) { - const analytics = useAnalytics(); const nativeSegwitSigner = useCurrentAccountNativeSegwitIndexZeroSigner(); const complianceReports = useCheckAddressComplianceQueries([ diff --git a/src/app/routes/hooks/use-on-tab-closed.ts b/src/app/routes/hooks/use-on-tab-closed.ts index 27b12ff3e73..b55544c6066 100644 --- a/src/app/routes/hooks/use-on-tab-closed.ts +++ b/src/app/routes/hooks/use-on-tab-closed.ts @@ -2,13 +2,12 @@ import { useEffect } from 'react'; import { InternalMethods } from '@shared/message-types'; import { BackgroundMessages } from '@shared/messages'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useDefaultRequestParams } from '@app/common/hooks/use-default-request-search-params'; export function useOnOriginTabClose(handler: () => void) { const { tabId } = useDefaultRequestParams(); - const analytics = useAnalytics(); useEffect(() => { const messageHandler = ( diff --git a/src/app/store/accounts/blockchain/bitcoin/bitcoin.hooks.ts b/src/app/store/accounts/blockchain/bitcoin/bitcoin.hooks.ts index 01ae5b46421..132f897fcb1 100644 --- a/src/app/store/accounts/blockchain/bitcoin/bitcoin.hooks.ts +++ b/src/app/store/accounts/blockchain/bitcoin/bitcoin.hooks.ts @@ -19,8 +19,8 @@ import { getAssumedZeroIndexSigningConfig, } from '@shared/crypto/bitcoin/signer-config'; import { allSighashTypes } from '@shared/rpc/methods/sign-psbt'; +import { analytics } from '@shared/utils/analytics'; -import { useAnalytics } from '@app/common/hooks/analytics/use-analytics'; import { useWalletType } from '@app/common/use-wallet-type'; import { listenForBitcoinTxLedgerSigning } from '@app/features/ledger/flows/bitcoin-tx-signing/bitcoin-tx-signing-event-listeners'; import { useLedgerNavigate } from '@app/features/ledger/hooks/use-ledger-navigate'; @@ -208,7 +208,7 @@ export function useSignLedgerBitcoinTx() { export function useAddTapInternalKeysIfMissing() { const createTaprootSigner = useCurrentAccountTaprootSigner(); - const analytics = useAnalytics(); + return (tx: btc.Transaction, inputIndexes: BitcoinInputSigningConfig[]) => inputIndexes.forEach(({ index, derivationPath }) => { const taprootSigner = createTaprootSigner?.(extractAddressIndexFromPath(derivationPath)); diff --git a/src/shared/utils/analytics.ts b/src/shared/utils/analytics.ts index 0b7f924d7a4..c13655bc93c 100644 --- a/src/shared/utils/analytics.ts +++ b/src/shared/utils/analytics.ts @@ -22,6 +22,21 @@ import { export const analytics = new AnalyticsBrowser(); +export function decorateAnalyticsEventsWithContext( + getEventContextProperties: () => Record +) { + void analytics.ready( + () => + void analytics.addSourceMiddleware(({ payload, next }) => { + Object.entries(getEventContextProperties()).forEach(([key, value]) => { + payload.obj.context = payload.obj.context || {}; + payload.obj.context[key] = value; + }); + next(payload); + }) + ); +} + export function initAnalytics() { return analytics.load( { writeKey: SEGMENT_WRITE_KEY }, From 12dca36cdebd0a2ff9f9df35f56ce0e633a1056c Mon Sep 17 00:00:00 2001 From: Pete Watters <2938440+pete-watters@users.noreply.github.com> Date: Tue, 4 Jun 2024 10:30:44 +0100 Subject: [PATCH 05/26] chore: install @leather-wallet/ui package, ref leather-wallet/issues#64 --- .storybook/main.ts | 6 + package.json | 23 +- panda.config.ts | 6 +- pnpm-lock.yaml | 6561 ++++++++++++++--- src/app/common/utils.spec.ts | 80 +- src/app/common/utils.ts | 18 - src/app/common/utils/spam-filter.spec.ts | 26 - src/app/common/utils/spam-filter.ts | 24 - src/app/components/account-total-balance.tsx | 5 +- .../components/account/account-addresses.tsx | 4 +- .../account/account-list-item.layout.tsx | 4 +- src/app/components/account/account-name.tsx | 2 +- src/app/components/balance/btc-balance.tsx | 3 +- src/app/components/balance/stx-balance.tsx | 2 +- .../bitcoin-contract-entry-point-layout.tsx | 2 +- .../bitcoin-contract-entry-point.tsx | 3 +- .../bitcoin-custom-fee-input.tsx | 2 +- .../bitcoin-custom-fee/bitcoin-custom-fee.tsx | 3 +- .../bitcoin-transaction-icon.tsx | 3 +- .../bitcoin-transaction-item.tsx | 3 +- .../bitcoin-transaction-status.tsx | 2 +- .../broadcast-error-dialog.tsx | 3 +- .../crypto-asset-item-error.tsx | 2 +- .../crypto-asset-item-placeholder.tsx | 3 +- .../crypto-asset-item.layout.tsx | 14 +- src/app/components/disclaimer.tsx | 3 +- src/app/components/error-label.tsx | 3 +- src/app/components/event-card.tsx | 2 +- .../fees-row/components/fee-estimate-item.tsx | 4 +- .../fees-row/components/fees-row.layout.tsx | 4 +- .../generic-error/generic-error.layout.tsx | 4 +- src/app/components/info-card/info-card.tsx | 4 +- .../components/inscription-metadata.tsx | 2 +- .../inscription-preview-card.tsx | 2 +- .../components/layout/divider-separator.tsx | 2 +- src/app/components/loading-spinner.tsx | 2 +- src/app/components/request-password.tsx | 4 +- src/app/components/requester-flag.tsx | 2 +- src/app/components/sponsored-label.tsx | 2 +- src/app/components/stacks-asset-avatar.tsx | 3 +- .../increase-fee-button.tsx | 2 +- .../stacks-transaction-icon.tsx | 4 +- .../stacks-transaction-status.tsx | 2 +- .../transaction-item.layout.tsx | 4 +- .../transaction/token-transfer-icon.tsx | 3 +- .../transaction/transaction-icon.tsx | 5 +- .../transaction/transaction-title.tsx | 5 +- .../components/no-account-activity.tsx | 2 +- .../submitted-transaction-icon.tsx | 2 +- .../submitted-transaction-item.tsx | 5 +- .../stacks-transaction/ft-transfer-item.tsx | 3 +- .../stacks-transaction/stx-transfer-item.tsx | 3 +- .../features/add-network/add-network-form.tsx | 14 +- src/app/features/add-network/add-network.tsx | 3 +- .../connect-ledger-asset-button.tsx | 3 +- .../connect-ledger-asset-item-fallback.tsx | 3 +- .../sip10-token-asset-item.tsx | 2 +- .../sip10-token-asset-list-unsupported.tsx | 3 +- .../stx-crypto-asset-item.tsx | 2 +- .../_collectible-types/collectible-audio.tsx | 2 +- .../components/add-collectible.tsx | 4 +- .../components/collectible-hover.tsx | 2 +- .../components/collectible.layout.tsx | 4 +- .../components/image-unavailable.tsx | 2 +- .../components/taproot-balance-displayer.tsx | 2 +- src/app/features/container/container.tsx | 6 +- .../components/edit-nonce-field.tsx | 3 +- .../components/edit-nonce-form.tsx | 2 +- .../edit-nonce-dialog/edit-nonce-dialog.tsx | 3 +- .../high-fee-dialog/high-fee-dialog.tsx | 7 +- .../components/increase-fee-actions.tsx | 3 +- .../increase-btc-fee-dialog.tsx | 3 +- .../increase-stx-fee-dialog.tsx | 3 +- .../leather-intro-steps.tsx | 3 +- .../switch-account-dialog.tsx | 3 +- .../features/errors/app-error-boundary.tsx | 4 +- .../requesting-tab-closed-error-msg.tsx | 3 +- .../feedback-button/feedback-button.tsx | 4 +- .../components/in-app-message-item.tsx | 3 +- .../components/ledger-inline-warnings.tsx | 2 +- .../components/ledger-screen-detail.tsx | 4 +- .../components/looking-for-ledger-label.tsx | 3 +- .../ledger/components/success-label.tsx | 3 +- .../steps/contract-principal-bug-warning.tsx | 2 +- .../broadcast-error.layout.tsx | 2 +- .../connect-ledger-error.layout.tsx | 6 +- .../connect-device/connect-ledger.tsx | 4 +- .../device-invalid-payload.layout.tsx | 3 +- .../ledger-disconnected.layout.tsx | 2 +- .../operation-rejected.layout.tsx | 3 +- .../public-key-mismatch.layout.tsx | 3 +- .../unsupported-browser.layout.tsx | 3 +- .../features/message-signer/hash-drawer.tsx | 3 +- .../message-signer/message-signing-header.tsx | 3 +- .../stacks-sign-message-action.tsx | 3 +- .../pending-brc-20-transfers.tsx | 4 +- .../psbt-input-output-item.layout.tsx | 5 +- .../components/psbt-address-total-item.tsx | 5 +- .../components/psbt-request-actions.tsx | 3 +- .../psbt-request-details-header.tsx | 4 +- .../psbt-request-details-section-header.tsx | 3 +- .../components/psbt-request-header.tsx | 3 +- .../psbt-request-sighash-warning-label.tsx | 2 +- src/app/features/psbt-signer/psbt-signer.tsx | 2 +- ...trieve-taproot-to-native-segwit.layout.tsx | 4 +- .../retrieve-taproot-to-native-segwit.tsx | 2 +- .../components/advanced-menu-items.tsx | 3 +- .../settings/components/ledger-item-row.tsx | 3 +- .../components/network-list-item.layout.tsx | 3 +- src/app/features/settings/network/network.tsx | 2 +- src/app/features/settings/settings.tsx | 31 +- .../features/settings/sign-out/sign-out.tsx | 4 +- .../settings/theme/theme-list-item.tsx | 3 +- .../contract-call-details.tsx | 3 +- .../function-arguments-list.tsx | 3 +- .../contract-deploy-details.tsx | 3 +- .../contract-preview.tsx | 4 +- .../minimal-error-message.tsx | 3 +- .../stacks-transaction-request/page-top.tsx | 3 +- .../post-condition-mode-warning.tsx | 3 +- .../post-conditions/no-post-conditions.tsx | 2 +- .../principal-value.tsx | 3 +- .../stacks-transaction-request/row.tsx | 2 +- .../stacks-transaction-signer.tsx | 2 +- .../stx-transfer-details.tsx | 3 +- .../submit-action.tsx | 2 +- .../transaction-error/error-message.tsx | 2 +- .../transaction-error/error-messages.tsx | 3 +- .../bitcoin-contract-list-item-layout.tsx | 4 +- .../bitcoin-contract-lock-amount.tsx | 6 +- .../bitcoin-contract-request-actions.tsx | 3 +- .../bitcoin-contract-request-header.tsx | 4 +- ...bitcoin-contract-request-warning-label.tsx | 2 +- .../pages/choose-account/choose-account.tsx | 3 +- .../choose-account/components/accounts.tsx | 3 +- .../fund/components/fiat-provider-item.tsx | 4 +- .../pages/home/components/account-actions.tsx | 4 +- src/app/pages/home/components/send-button.tsx | 3 +- .../swaps-disabled-tooltip-label.tsx | 2 +- .../back-up-secret-key/back-up-secret-key.tsx | 3 +- .../components/password-field.tsx | 6 +- .../onboarding/set-password/set-password.tsx | 2 +- .../onboarding/sign-in/mnemonic-form.tsx | 2 +- src/app/pages/onboarding/sign-in/sign-in.tsx | 2 +- .../pages/receive/components/receive-item.tsx | 13 +- .../components/receive-tokens.layout.tsx | 3 +- .../components/get-addresses.layout.tsx | 5 +- .../components/send-transfer-header.tsx | 3 +- .../rpc-send-transfer-confirmation.tsx | 2 +- .../rpc-send-transfer-summary.tsx | 5 +- .../rpc-send-transfer/rpc-send-transfer.tsx | 2 +- .../rpc-sign-psbt/rpc-sign-psbt-summary.tsx | 5 +- .../choose-crypto-asset/send-btc-disabled.tsx | 3 +- .../locked-bitcoin-summary.tsx | 4 +- .../send-inscription-form.tsx | 3 +- .../send-inscription-review.tsx | 2 +- .../sent-inscription-summary.tsx | 4 +- .../components/memo-field.tsx | 3 +- .../recipient-address-type-field.tsx | 4 +- .../recipient-address-displayer.tsx | 3 +- .../recipient-type-dropdown.tsx | 4 +- .../components/selected-asset-field.tsx | 3 +- .../components/send-max-button.tsx | 2 +- .../components/bitcoin-send-max-button.tsx | 2 +- .../brc20/brc20-send-form-confirmation.tsx | 2 +- .../form/brc20/brc20-send-form.tsx | 4 +- .../form/btc/btc-send-form-confirmation.tsx | 2 +- .../form/btc/btc-send-form.tsx | 4 +- .../form/send-form-confirmation.tsx | 4 +- .../form/stacks/stacks-common-send-form.tsx | 3 +- .../stacks/stacks-send-form-confirmation.tsx | 2 +- .../send/sent-summary/brc20-sent-summary.tsx | 4 +- .../send/sent-summary/btc-sent-summary.tsx | 4 +- .../send/sent-summary/stx-sent-summary.tsx | 4 +- .../components/swap-asset-item.tsx | 3 +- .../select-asset-trigger-button.tsx | 4 +- .../components/swap-asset-select.layout.tsx | 2 +- .../components/swap-toggle-button.tsx | 3 +- .../swap-asset-item.layout.tsx | 2 +- .../swap-assets-pair.layout.tsx | 2 +- .../swap-details/swap-detail.layout.tsx | 3 +- .../components/swap-details/swap-details.tsx | 2 +- src/app/pages/swap/components/swap-review.tsx | 3 +- src/app/pages/swap/swap.tsx | 2 +- .../transaction-request.tsx | 2 +- .../components/page-top.tsx | 4 +- .../components/update-action.layout.tsx | 2 +- .../components/update-profile-error-msg.tsx | 3 +- .../accordion/accordion.stories.tsx | 31 - src/app/ui/components/accordion/accordion.tsx | 69 - .../account/account-avatar/account-avatar.tsx | 2 +- .../account/account.card.stories.tsx | 3 +- .../ui/components/account/account.card.tsx | 5 +- .../address-displayer.stories.tsx | 3 +- .../ui/components/avatar/avatar.stories.tsx | 2 +- .../bullet-separator.stories.tsx | 52 - .../bullet-separator/bullet-separator.tsx | 32 - .../ui/components/button/button.stories.tsx | 74 - src/app/ui/components/button/button.tsx | 23 - .../ui/components/callout/callout.stories.tsx | 53 - src/app/ui/components/callout/callout.tsx | 68 - .../ui/components/callout/callout.utils.tsx | 16 - .../containers/dialog/dialog.stories.tsx | 3 +- .../containers/footers/available-balance.tsx | 3 +- .../containers/footers/footer.stories.tsx | 3 +- .../headers/components/big-title-header.tsx | 2 +- .../components/header-action-button.tsx | 2 +- .../headers/components/network-mode-badge.tsx | 18 - .../containers/headers/dialog-header.tsx | 2 +- .../components/containers/headers/header.tsx | 2 +- .../dropdown-menu-item.layout.tsx | 16 - .../dropdown-menu/dropdown-menu.stories.tsx | 46 - .../dropdown-menu/dropdown-menu.tsx | 130 - .../ui/components/dynamic-color-circle.tsx | 29 - src/app/ui/components/flag/flag.stories.tsx | 35 - src/app/ui/components/flag/flag.tsx | 56 - src/app/ui/components/hr.tsx | 12 - .../icon-button/accessible-icon.tsx | 7 - .../icon-button/icon-button.stories.tsx | 30 - .../ui/components/icon-button/icon-button.tsx | 32 - src/app/ui/components/input/input.stories.tsx | 72 - src/app/ui/components/input/input.tsx | 217 - .../item-layout/item-layout-with-buttons.tsx | 43 - .../item-layout/item-layout.stories.tsx | 25 - .../ui/components/item-layout/item-layout.tsx | 87 - src/app/ui/components/link/link.stories.tsx | 35 - src/app/ui/components/link/link.tsx | 24 - src/app/ui/components/logo.tsx | 20 - .../mnemonic-key/mnemonic-word-input.tsx | 5 +- .../secret-key/secret-key.layout.tsx | 5 +- .../components/select/select-item.layout.tsx | 16 - .../ui/components/select/select.stories.tsx | 60 - src/app/ui/components/select/select.tsx | 109 - .../skeleton-loader.stories.tsx | 15 - .../skeleton-loader/skeleton-loader.tsx | 31 - src/app/ui/components/spinner.tsx | 35 - .../ui/components/tag/tag-with-tooltip.tsx | 3 +- src/app/ui/components/tag/tag.stories.tsx | 32 - src/app/ui/components/tag/tag.tsx | 66 - src/app/ui/components/toast/toast.utils.tsx | 2 +- .../ui/components/tooltip/tooltip.stories.tsx | 3 +- src/app/ui/components/typography/caption.tsx | 17 - src/app/ui/components/typography/title.tsx | 18 - src/app/ui/icons/arrow-down-icon.tsx | 28 - src/app/ui/icons/arrow-left-icon.tsx | 28 - src/app/ui/icons/arrow-up-icon.tsx | 28 - src/app/ui/icons/bitcoin-contract-icon.tsx | 21 - src/app/ui/icons/bitcoin-icon.tsx | 22 - src/app/ui/icons/checkmark-circle-icon.tsx | 28 - src/app/ui/icons/checkmark-icon.tsx | 28 - src/app/ui/icons/chevron-down-icon.tsx | 28 - src/app/ui/icons/chevron-up-icon.tsx | 28 - src/app/ui/icons/chevrons-right-icon.tsx | 35 - src/app/ui/icons/circle-icon.tsx | 23 - src/app/ui/icons/close-icon.tsx | 21 - src/app/ui/icons/cloud-off-icon.tsx | 28 - src/app/ui/icons/code-icon.tsx | 28 - src/app/ui/icons/copy-icon.tsx | 28 - src/app/ui/icons/credit-card-icon.tsx | 28 - src/app/ui/icons/docs/icons-list.ts | 12 - src/app/ui/icons/docs/icons.mdx | 50 - src/app/ui/icons/download-icon.tsx | 28 - src/app/ui/icons/edit-icon.tsx | 28 - src/app/ui/icons/error-circle-icon.tsx | 30 - src/app/ui/icons/error-icon.tsx | 29 - src/app/ui/icons/exit-icon.tsx | 28 - src/app/ui/icons/expand-icon.tsx | 28 - src/app/ui/icons/external-link-icon.tsx | 28 - src/app/ui/icons/eye-icon.tsx | 32 - src/app/ui/icons/eye-slash-icon.tsx | 22 - src/app/ui/icons/function-icon.tsx | 22 - src/app/ui/icons/hamburger-icon.tsx | 27 - src/app/ui/icons/headset-icon.tsx | 28 - src/app/ui/icons/icon/icon.stories.tsx | 19 - src/app/ui/icons/icon/icon.tsx | 23 - src/app/ui/icons/inbox-icon.tsx | 28 - src/app/ui/icons/index.ts | 53 - src/app/ui/icons/info-circle-icon.tsx | 48 - src/app/ui/icons/key-icon.tsx | 34 - src/app/ui/icons/ledger-icon.tsx | 23 - src/app/ui/icons/lettermark-icon.tsx | 12 - src/app/ui/icons/list-icon.tsx | 28 - src/app/ui/icons/lock-icon.tsx | 28 - src/app/ui/icons/logomark-icon.tsx | 12 - src/app/ui/icons/megaphone-icon.tsx | 28 - src/app/ui/icons/moon-icon.tsx | 34 - src/app/ui/icons/placeholder-icon.tsx | 28 - src/app/ui/icons/plus-icon.tsx | 27 - src/app/ui/icons/qr-code-icon.tsx | 53 - src/app/ui/icons/question-circle-icon.tsx | 24 - src/app/ui/icons/refresh-icon.tsx | 28 - src/app/ui/icons/reload-icon.tsx | 28 - src/app/ui/icons/send-icon.tsx | 28 - src/app/ui/icons/stacks-icon.tsx | 22 - src/app/ui/icons/star-icon.tsx | 28 - src/app/ui/icons/sun-icon.tsx | 35 - src/app/ui/icons/sun-in-cloud-icon.tsx | 35 - src/app/ui/icons/support-icon.tsx | 24 - src/app/ui/icons/swap-icon.tsx | 28 - src/app/ui/icons/trash-icon.tsx | 22 - src/app/ui/icons/unlock-icon.tsx | 28 - src/app/ui/icons/world-icon.tsx | 26 - src/app/ui/icons/zap-icon.tsx | 26 - src/app/ui/layout/card/card.stories.tsx | 2 +- src/app/ui/pages/home.layout.stories.tsx | 4 +- src/app/ui/pages/welcome.layout.tsx | 6 +- src/app/ui/pressable/pressable.stories.tsx | 132 - src/app/ui/pressable/pressable.tsx | 106 - src/app/ui/shared/shimmer-styles.ts | 11 - src/app/ui/utils/style-context.tsx | 70 - webpack/webpack.config.base.js | 8 + 311 files changed, 5933 insertions(+), 5246 deletions(-) delete mode 100644 src/app/common/utils/spam-filter.spec.ts delete mode 100644 src/app/common/utils/spam-filter.ts delete mode 100644 src/app/ui/components/accordion/accordion.stories.tsx delete mode 100644 src/app/ui/components/accordion/accordion.tsx delete mode 100644 src/app/ui/components/bullet-separator/bullet-separator.stories.tsx delete mode 100644 src/app/ui/components/bullet-separator/bullet-separator.tsx delete mode 100644 src/app/ui/components/button/button.stories.tsx delete mode 100644 src/app/ui/components/button/button.tsx delete mode 100644 src/app/ui/components/callout/callout.stories.tsx delete mode 100644 src/app/ui/components/callout/callout.tsx delete mode 100644 src/app/ui/components/callout/callout.utils.tsx delete mode 100644 src/app/ui/components/containers/headers/components/network-mode-badge.tsx delete mode 100644 src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx delete mode 100644 src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx delete mode 100644 src/app/ui/components/dropdown-menu/dropdown-menu.tsx delete mode 100644 src/app/ui/components/dynamic-color-circle.tsx delete mode 100644 src/app/ui/components/flag/flag.stories.tsx delete mode 100644 src/app/ui/components/flag/flag.tsx delete mode 100644 src/app/ui/components/hr.tsx delete mode 100644 src/app/ui/components/icon-button/accessible-icon.tsx delete mode 100644 src/app/ui/components/icon-button/icon-button.stories.tsx delete mode 100644 src/app/ui/components/icon-button/icon-button.tsx delete mode 100644 src/app/ui/components/input/input.stories.tsx delete mode 100644 src/app/ui/components/input/input.tsx delete mode 100644 src/app/ui/components/item-layout/item-layout-with-buttons.tsx delete mode 100644 src/app/ui/components/item-layout/item-layout.stories.tsx delete mode 100644 src/app/ui/components/item-layout/item-layout.tsx delete mode 100644 src/app/ui/components/link/link.stories.tsx delete mode 100644 src/app/ui/components/link/link.tsx delete mode 100644 src/app/ui/components/logo.tsx delete mode 100644 src/app/ui/components/select/select-item.layout.tsx delete mode 100644 src/app/ui/components/select/select.stories.tsx delete mode 100644 src/app/ui/components/select/select.tsx delete mode 100644 src/app/ui/components/skeleton-loader/skeleton-loader.stories.tsx delete mode 100644 src/app/ui/components/skeleton-loader/skeleton-loader.tsx delete mode 100644 src/app/ui/components/spinner.tsx delete mode 100644 src/app/ui/components/tag/tag.stories.tsx delete mode 100644 src/app/ui/components/tag/tag.tsx delete mode 100644 src/app/ui/components/typography/caption.tsx delete mode 100644 src/app/ui/components/typography/title.tsx delete mode 100644 src/app/ui/icons/arrow-down-icon.tsx delete mode 100644 src/app/ui/icons/arrow-left-icon.tsx delete mode 100644 src/app/ui/icons/arrow-up-icon.tsx delete mode 100644 src/app/ui/icons/bitcoin-contract-icon.tsx delete mode 100644 src/app/ui/icons/bitcoin-icon.tsx delete mode 100644 src/app/ui/icons/checkmark-circle-icon.tsx delete mode 100644 src/app/ui/icons/checkmark-icon.tsx delete mode 100644 src/app/ui/icons/chevron-down-icon.tsx delete mode 100644 src/app/ui/icons/chevron-up-icon.tsx delete mode 100644 src/app/ui/icons/chevrons-right-icon.tsx delete mode 100644 src/app/ui/icons/circle-icon.tsx delete mode 100644 src/app/ui/icons/close-icon.tsx delete mode 100644 src/app/ui/icons/cloud-off-icon.tsx delete mode 100644 src/app/ui/icons/code-icon.tsx delete mode 100644 src/app/ui/icons/copy-icon.tsx delete mode 100644 src/app/ui/icons/credit-card-icon.tsx delete mode 100644 src/app/ui/icons/docs/icons-list.ts delete mode 100644 src/app/ui/icons/docs/icons.mdx delete mode 100644 src/app/ui/icons/download-icon.tsx delete mode 100644 src/app/ui/icons/edit-icon.tsx delete mode 100644 src/app/ui/icons/error-circle-icon.tsx delete mode 100644 src/app/ui/icons/error-icon.tsx delete mode 100644 src/app/ui/icons/exit-icon.tsx delete mode 100644 src/app/ui/icons/expand-icon.tsx delete mode 100644 src/app/ui/icons/external-link-icon.tsx delete mode 100644 src/app/ui/icons/eye-icon.tsx delete mode 100644 src/app/ui/icons/eye-slash-icon.tsx delete mode 100644 src/app/ui/icons/function-icon.tsx delete mode 100644 src/app/ui/icons/hamburger-icon.tsx delete mode 100644 src/app/ui/icons/headset-icon.tsx delete mode 100644 src/app/ui/icons/icon/icon.stories.tsx delete mode 100644 src/app/ui/icons/icon/icon.tsx delete mode 100644 src/app/ui/icons/inbox-icon.tsx delete mode 100644 src/app/ui/icons/index.ts delete mode 100644 src/app/ui/icons/info-circle-icon.tsx delete mode 100644 src/app/ui/icons/key-icon.tsx delete mode 100644 src/app/ui/icons/ledger-icon.tsx delete mode 100644 src/app/ui/icons/lettermark-icon.tsx delete mode 100644 src/app/ui/icons/list-icon.tsx delete mode 100644 src/app/ui/icons/lock-icon.tsx delete mode 100644 src/app/ui/icons/logomark-icon.tsx delete mode 100644 src/app/ui/icons/megaphone-icon.tsx delete mode 100644 src/app/ui/icons/moon-icon.tsx delete mode 100644 src/app/ui/icons/placeholder-icon.tsx delete mode 100644 src/app/ui/icons/plus-icon.tsx delete mode 100644 src/app/ui/icons/qr-code-icon.tsx delete mode 100644 src/app/ui/icons/question-circle-icon.tsx delete mode 100644 src/app/ui/icons/refresh-icon.tsx delete mode 100644 src/app/ui/icons/reload-icon.tsx delete mode 100644 src/app/ui/icons/send-icon.tsx delete mode 100644 src/app/ui/icons/stacks-icon.tsx delete mode 100644 src/app/ui/icons/star-icon.tsx delete mode 100644 src/app/ui/icons/sun-icon.tsx delete mode 100644 src/app/ui/icons/sun-in-cloud-icon.tsx delete mode 100644 src/app/ui/icons/support-icon.tsx delete mode 100644 src/app/ui/icons/swap-icon.tsx delete mode 100644 src/app/ui/icons/trash-icon.tsx delete mode 100644 src/app/ui/icons/unlock-icon.tsx delete mode 100644 src/app/ui/icons/world-icon.tsx delete mode 100644 src/app/ui/icons/zap-icon.tsx delete mode 100644 src/app/ui/pressable/pressable.stories.tsx delete mode 100644 src/app/ui/pressable/pressable.tsx delete mode 100644 src/app/ui/shared/shimmer-styles.ts delete mode 100644 src/app/ui/utils/style-context.tsx diff --git a/.storybook/main.ts b/.storybook/main.ts index a0b45bc0055..a110e46e35d 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -42,6 +42,12 @@ const config: StorybookConfig = { loader: 'esbuild-loader', options: { tsconfig: './tsconfig.json', target: 'es2020' }, }, + { + test: /\.(js)$/, + include: [/node_modules\/@leather-wallet\/ui/], + loader: 'esbuild-loader', + options: { tsconfig: './tsconfig.json', loader: 'jsx', target: 'es2020' }, + }, ], }, }, diff --git a/package.json b/package.json index 351e5148773..5e5d80f4450 100644 --- a/package.json +++ b/package.json @@ -147,12 +147,8 @@ "@noble/secp256k1": "2.1.0", "@octokit/types": "12.4.0", "@radix-ui/colors": "3.0.0", - "@radix-ui/react-accessible-icon": "1.0.3", - "@radix-ui/react-accordion": "1.1.2", "@radix-ui/react-avatar": "1.0.4", "@radix-ui/react-dialog": "1.0.5", - "@radix-ui/react-dropdown-menu": "2.0.6", - "@radix-ui/react-select": "2.0.0", "@radix-ui/react-tabs": "1.0.4", "@radix-ui/react-toast": "1.1.5", "@radix-ui/react-tooltip": "1.0.7", @@ -258,6 +254,7 @@ "@leather-wallet/panda-preset": "0.2.0", "@leather-wallet/prettier-config": "0.4.1", "@leather-wallet/rpc": "1.0.3", + "@leather-wallet/ui": "1.4.4", "@ls-lint/ls-lint": "2.2.3", "@mdx-js/loader": "3.0.0", "@pandacss/dev": "0.40.1", @@ -270,18 +267,18 @@ "@sentry/webpack-plugin": "2.17.0", "@stacks/connect-react": "22.2.0", "@stacks/stacks-blockchain-api-types": "7.8.2", - "@storybook/addon-docs": "8.0.1", - "@storybook/addon-essentials": "8.0.1", - "@storybook/addon-interactions": "8.0.1", + "@storybook/addon-docs": "8.1.4", + "@storybook/addon-essentials": "8.1.4", + "@storybook/addon-interactions": "8.1.4", "@storybook/addon-links": "8.0.1", - "@storybook/addon-mdx-gfm": "8.0.1", + "@storybook/addon-mdx-gfm": "8.1.4", "@storybook/addon-onboarding": "8.0.1", "@storybook/addon-webpack5-compiler-swc": "1.0.2", - "@storybook/blocks": "8.0.6", - "@storybook/react": "8.0.1", - "@storybook/react-webpack5": "8.0.1", - "@storybook/test": "8.0.1", - "@storybook/theming": "8.0.1", + "@storybook/blocks": "8.1.4", + "@storybook/react": "8.1.4", + "@storybook/react-webpack5": "8.1.4", + "@storybook/test": "8.1.4", + "@storybook/theming": "8.1.4", "@types/argon2-browser": "1.18.4", "@types/bn.js": "5.1.5", "@types/chrome": "0.0.260", diff --git a/panda.config.ts b/panda.config.ts index dd43b20819e..9353ebeb9a8 100644 --- a/panda.config.ts +++ b/panda.config.ts @@ -4,8 +4,10 @@ import { globalCss } from './theme/global/global'; export default defineConfig({ preflight: true, - - include: ['./src/**/*.{js,jsx,ts,tsx}'], + include: [ + './node_modules/@leather-wallet/ui/dist-all/src/**/*.{js,jsx,ts,tsx}', + './src/**/*.{js,jsx,ts,tsx}', + ], exclude: [], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94aedd51e65..1de8b9b07a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,7 +49,7 @@ importers: version: 0.8.0 '@leather-wallet/query': specifier: 0.8.8 - version: 0.8.8(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 0.8.8(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) '@leather-wallet/tokens': specifier: 0.5.2 version: 0.5.2 @@ -71,24 +71,12 @@ importers: '@radix-ui/colors': specifier: 3.0.0 version: 3.0.0 - '@radix-ui/react-accessible-icon': - specifier: 1.0.3 - version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-accordion': - specifier: 1.1.2 - version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-avatar': specifier: 1.0.4 version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dialog': specifier: 1.0.5 version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-dropdown-menu': - specifier: 2.0.6 - version: 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-select': - specifier: 2.0.0 - version: 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tabs': specifier: 1.0.4 version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -103,7 +91,7 @@ importers: version: 2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@reduxjs/toolkit': specifier: 2.2.3 - version: 2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1) + version: 2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1) '@scure/base': specifier: 1.1.6 version: 1.1.6 @@ -172,13 +160,13 @@ importers: version: 4.35.7 '@tanstack/react-query': specifier: 4.35.7 - version: 4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) '@tanstack/react-query-devtools': specifier: 4.35.7 - version: 4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-query-persist-client': specifier: 4.35.7 - version: 4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)) '@types/lodash.uniqby': specifier: 4.7.7 version: 4.7.7 @@ -331,7 +319,7 @@ importers: version: 2.0.12(react@18.3.1) react-redux: specifier: 9.1.0 - version: 9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1) + version: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) react-router-dom: specifier: 6.23.1 version: 6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -399,6 +387,9 @@ importers: '@leather-wallet/rpc': specifier: 1.0.3 version: 1.0.3 + '@leather-wallet/ui': + specifier: 1.4.4 + version: 1.4.4(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@swc/core@1.4.8)(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5) '@ls-lint/ls-lint': specifier: 2.2.3 version: 2.2.3 @@ -416,10 +407,10 @@ importers: version: 0.5.13(@types/webpack@5.28.5(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)))(react-refresh@0.14.2)(type-fest@4.20.0)(webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.91.0))(webpack-hot-middleware@2.26.1)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) '@redux-devtools/cli': specifier: 4.0.0 - version: 4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13) + version: 4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0)) '@redux-devtools/remote': specifier: 0.9.3 - version: 0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) + version: 0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) '@schemastore/web-manifest': specifier: 0.0.6 version: 0.0.6 @@ -436,20 +427,20 @@ importers: specifier: 7.8.2 version: 7.8.2 '@storybook/addon-docs': - specifier: 8.0.1 - version: 8.0.1(encoding@0.1.13) + specifier: 8.1.4 + version: 8.1.4(@types/react-dom@18.3.0)(encoding@0.1.13)(prettier@3.2.5) '@storybook/addon-essentials': - specifier: 8.0.1 - version: 8.0.1(@types/react@18.3.3)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 8.1.4 + version: 8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/addon-interactions': - specifier: 8.0.1 - version: 8.0.1(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1)) + specifier: 8.1.4 + version: 8.1.4(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1)) '@storybook/addon-links': specifier: 8.0.1 version: 8.0.1(react@18.3.1) '@storybook/addon-mdx-gfm': - specifier: 8.0.1 - version: 8.0.1 + specifier: 8.1.4 + version: 8.1.4 '@storybook/addon-onboarding': specifier: 8.0.1 version: 8.0.1 @@ -457,20 +448,20 @@ importers: specifier: 1.0.2 version: 1.0.2(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) '@storybook/blocks': - specifier: 8.0.6 - version: 8.0.6(@types/react@18.3.3)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 8.1.4 + version: 8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/react': - specifier: 8.0.1 - version: 8.0.1(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5) + specifier: 8.1.4 + version: 8.1.4(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5) '@storybook/react-webpack5': - specifier: 8.0.1 - version: 8.0.1(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) + specifier: 8.1.4 + version: 8.1.4(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) '@storybook/test': - specifier: 8.0.1 - version: 8.0.1(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1)) + specifier: 8.1.4 + version: 8.1.4(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1)) '@storybook/theming': - specifier: 8.0.1 - version: 8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 8.1.4 + version: 8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/argon2-browser': specifier: 1.18.4 version: 1.18.4 @@ -718,10 +709,6 @@ packages: '@adobe/css-tools@4.3.2': resolution: {integrity: sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==} - '@ampproject/remapping@2.2.1': - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -813,6 +800,9 @@ packages: resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==} hasBin: true + '@babel/code-frame@7.10.4': + resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} + '@babel/code-frame@7.23.5': resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} @@ -841,10 +831,6 @@ packages: resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.0': - resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} - engines: {node: '>=6.9.0'} - '@babel/core@7.24.4': resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} engines: {node: '>=6.9.0'} @@ -873,6 +859,10 @@ packages: resolution: {integrity: sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6': resolution: {integrity: sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==} engines: {node: '>=6.9.0'} @@ -897,6 +887,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.24.7': + resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.22.15': resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} @@ -958,6 +954,10 @@ packages: resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.24.7': + resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.22.15': resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} @@ -966,6 +966,10 @@ packages: resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.23.3': resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} @@ -986,6 +990,10 @@ packages: resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==} engines: {node: '>=6.9.0'} + '@babel/helper-optimise-call-expression@7.24.7': + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.22.5': resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} @@ -994,6 +1002,10 @@ packages: resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.24.7': + resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.24.6': resolution: {integrity: sha512-1Qursq9ArRZPAMOZf/nuzVW8HgJLkTB9y9LfP4lW2MVp4e9WkLJDovfKBxoDcCk6VuzIxyqWHyBoaCtSRP10yg==} engines: {node: '>=6.9.0'} @@ -1012,6 +1024,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.24.7': + resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-simple-access@7.22.5': resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} @@ -1028,6 +1046,10 @@ packages: resolution: {integrity: sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==} engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-split-export-declaration@7.22.6': resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} @@ -1072,12 +1094,12 @@ packages: resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.24.6': - resolution: {integrity: sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==} + '@babel/helper-validator-option@7.24.7': + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.0': - resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} + '@babel/helper-wrap-function@7.24.6': + resolution: {integrity: sha512-f1JLrlw/jbiNfxvdrfBgio/gRBk3yTAEJWirpAkiJG2Hb22E7cEYKHWo0dFPTv/niPovzIdPdEDetrv6tC6gPQ==} engines: {node: '>=6.9.0'} '@babel/helpers@7.24.4': @@ -1143,6 +1165,74 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-proposal-async-generator-functions@7.20.7': + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-class-properties@7.18.6': + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-decorators@7.24.7': + resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-export-default-from@7.24.7': + resolution: {integrity: sha512-CcmFwUJ3tKhLjPdt4NP+SHMshebytF8ZTYOv5ZDpkzq2sin80Wb5vJrGt8fhPrORQCfoSa0LAxC/DW+GAC5+Hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-logical-assignment-operators@7.20.7': + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-numeric-separator@7.18.6': + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-object-rest-spread@7.20.7': + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-optional-catch-binding@7.18.6': + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-optional-chaining@7.21.0': + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} @@ -1165,11 +1255,23 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-decorators@7.24.7': + resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-dynamic-import@7.8.3': resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-export-default-from@7.24.7': + resolution: {integrity: sha512-bTPz4/635WQ9WhwsyPdxUJDVpsi/X9BMmy/8Rf/UAlOO4jSql4CxUCjWI5PiM+jG+c4LVPTScoTw80geFj9+Bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-export-namespace-from@7.8.3': resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: @@ -1209,6 +1311,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.24.7': + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -1521,6 +1629,42 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-display-name@7.24.7': + resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-development@7.24.7': + resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-self@7.24.7': + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.24.7': + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.24.7': + resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-pure-annotations@7.24.7': + resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.24.6': resolution: {integrity: sha512-SMDxO95I8WXRtXhTAc8t/NFQUT7VYbIWwJCJgEli9ml4MhqUMh4S6hxgH6SmAC3eAQNWCDJFxcFeEt9w2sDdXg==} engines: {node: '>=6.9.0'} @@ -1533,6 +1677,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.24.7': + resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.24.6': resolution: {integrity: sha512-xnEUvHSMr9eOWS5Al2YPfc32ten7CXdH7Zwyyk7IqITg4nX61oHj+GxpNvl+y5JHjfN3KXE2IV55wAWowBYMVw==} engines: {node: '>=6.9.0'} @@ -1610,6 +1760,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + '@babel/preset-react@7.24.7': + resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.23.3': resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} engines: {node: '>=6.9.0'} @@ -1661,6 +1817,10 @@ packages: resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.24.7': + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.17.0': resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} engines: {node: '>=6.9.0'} @@ -2093,6 +2253,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/android-arm64@0.18.20': + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.20.2': resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} @@ -2105,6 +2271,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm@0.18.20': + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.20.2': resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} @@ -2117,6 +2289,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-x64@0.18.20': + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.20.2': resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} @@ -2129,6 +2307,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/darwin-arm64@0.18.20': + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.20.2': resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} @@ -2141,6 +2325,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-x64@0.18.20': + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.20.2': resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} @@ -2153,6 +2343,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/freebsd-arm64@0.18.20': + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.20.2': resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} @@ -2165,6 +2361,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-x64@0.18.20': + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.20.2': resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} @@ -2177,6 +2379,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/linux-arm64@0.18.20': + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.20.2': resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} @@ -2189,6 +2397,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm@0.18.20': + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.20.2': resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} @@ -2201,6 +2415,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-ia32@0.18.20': + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.20.2': resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} @@ -2213,6 +2433,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-loong64@0.18.20': + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.20.2': resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} @@ -2225,6 +2451,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-mips64el@0.18.20': + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.20.2': resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} @@ -2237,6 +2469,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-ppc64@0.18.20': + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.20.2': resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} @@ -2249,6 +2487,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-riscv64@0.18.20': + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.20.2': resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} @@ -2261,6 +2505,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-s390x@0.18.20': + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.20.2': resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} @@ -2273,6 +2523,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-x64@0.18.20': + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.20.2': resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} @@ -2285,6 +2541,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/netbsd-x64@0.18.20': + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.20.2': resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} @@ -2297,6 +2559,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/openbsd-x64@0.18.20': + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.20.2': resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} @@ -2309,6 +2577,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/sunos-x64@0.18.20': + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.20.2': resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} @@ -2321,6 +2595,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/win32-arm64@0.18.20': + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.20.2': resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} @@ -2333,6 +2613,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-ia32@0.18.20': + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.20.2': resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} @@ -2345,6 +2631,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-x64@0.18.20': + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.20.2': resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} @@ -2375,6 +2667,82 @@ packages: resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@expo/bunyan@4.0.0': + resolution: {integrity: sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==} + engines: {'0': node >=0.10.0} + + '@expo/cli@0.18.13': + resolution: {integrity: sha512-ZO1fpDK8z6mLeQGuFP6e3cZyCHV55ohZY7/tEyhpft3bwysS680eyFg5SFe+tWNFesnziFrbtI8JaUyhyjqovA==} + hasBin: true + + '@expo/code-signing-certificates@0.0.5': + resolution: {integrity: sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==} + + '@expo/config-plugins@8.0.4': + resolution: {integrity: sha512-Hi+xuyNWE2LT4LVbGttHJgl9brnsdWAhEB42gWKb5+8ae86Nr/KwUBQJsJppirBYTeLjj5ZlY0glYnAkDa2jqw==} + + '@expo/config-plugins@8.0.5': + resolution: {integrity: sha512-VGseKX1dYvaf2qHUDGzIQwSOJrO5fomH0gE5cKSQyi6wn+Q6rcV2Dj2E5aga+9aKNPL6FxZ0dqRFC3t2sbhaSA==} + + '@expo/config-types@51.0.1': + resolution: {integrity: sha512-5JuzUFobFImrUgnq93LeucP44ZMxq8WMXmCtIUf3ZC3mJSwjvvHJBMO2fS/sIlmgvvQk9eq4VnX06/7tgDFMSg==} + + '@expo/config@9.0.2': + resolution: {integrity: sha512-BKQ4/qBf3OLT8hHp5kjObk2vxwoRQ1yYQBbG/OM9Jdz32yYtrU8opTbKRAxfZEWH5i3ZHdLrPdC1rO0I6WxtTw==} + + '@expo/devcert@1.1.2': + resolution: {integrity: sha512-FyWghLu7rUaZEZSTLt/XNRukm0c9GFfwP0iFaswoDWpV6alvVg+zRAfCLdIVQEz1SVcQ3zo1hMZFDrnKGvkCuQ==} + + '@expo/env@0.3.0': + resolution: {integrity: sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==} + + '@expo/image-utils@0.5.1': + resolution: {integrity: sha512-U/GsFfFox88lXULmFJ9Shfl2aQGcwoKPF7fawSCLixIKtMCpsI+1r0h+5i0nQnmt9tHuzXZDL8+Dg1z6OhkI9A==} + + '@expo/json-file@8.3.3': + resolution: {integrity: sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A==} + + '@expo/metro-config@0.18.4': + resolution: {integrity: sha512-vh9WDf/SzE+NYCn6gqbzLKiXtENFlFZdAqyj9nI38RvQ4jw6TJIQ8+ExcdLDT3MOG36Ytg44XX9Zb3OWF6LVxw==} + + '@expo/osascript@2.1.3': + resolution: {integrity: sha512-aOEkhPzDsaAfolSswObGiYW0Pf0ROfR9J2NBRLQACdQ6uJlyAMiPF45DVEVknAU9juKh0y8ZyvC9LXqLEJYohA==} + engines: {node: '>=12'} + + '@expo/package-manager@1.5.2': + resolution: {integrity: sha512-IuA9XtGBilce0q8cyxtWINqbzMB1Fia0Yrug/O53HNuRSwQguV/iqjV68bsa4z8mYerePhcFgtvISWLAlNEbUA==} + + '@expo/plist@0.1.3': + resolution: {integrity: sha512-GW/7hVlAylYg1tUrEASclw1MMk9FP4ZwyFAY/SUTJIhPDQHtfOlXREyWV3hhrHdX/K+pS73GNgdfT6E/e+kBbg==} + + '@expo/prebuild-config@7.0.3': + resolution: {integrity: sha512-Kvxy/oQzkxwXLvAmwb+ygxuRn4xUUN2+mVJj3KDe4bRVCNyDPs7wlgdokF3twnWjzRZssUzseMkhp+yHPjAEhA==} + peerDependencies: + expo-modules-autolinking: '>=0.8.1' + + '@expo/prebuild-config@7.0.4': + resolution: {integrity: sha512-E2n3QbwgV8Qa0CBw7BHrWBDWD7l8yw+N/yjvXpSPFFtoZLMSKyegdkJFACh2u+UIRKUSZm8zQwHeZR0rqAxV9g==} + peerDependencies: + expo-modules-autolinking: '>=0.8.1' + + '@expo/rudder-sdk-node@1.1.1': + resolution: {integrity: sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==} + engines: {node: '>=12'} + + '@expo/sdk-runtime-versions@1.0.0': + resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==} + + '@expo/spawn-async@1.7.2': + resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==} + engines: {node: '>=12'} + + '@expo/vector-icons@14.0.0': + resolution: {integrity: sha512-5orm59pdnBQlovhU9k4DbjMUZBHNlku7IRgFY56f7pcaaCnXq9yaLJoOQl9sMwNdFzf4gnkTyHmR5uN10mI9rA==} + + '@expo/xcpretty@4.3.1': + resolution: {integrity: sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==} + hasBin: true + '@fal-works/esbuild-plugin-global-externals@2.1.2': resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} @@ -2428,6 +2796,12 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@hirosystems/token-metadata-api-client@1.2.0': resolution: {integrity: sha512-voIhvGV4yCOEE2BWbQeGV4S395OLTKg5VsV4HJBM4Ekf/hiu5fktF8R0T24JcZc06resf94hH6L9ybiLz6tpGQ==} @@ -2446,14 +2820,38 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/ttlcache@1.4.1': + resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} + engines: {node: '>=12'} + '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} + '@jest/create-cache-key-function@29.7.0': + resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@26.6.2': + resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} + engines: {node: '>= 10.14.2'} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@josephg/resolvable@1.0.1': resolution: {integrity: sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==} @@ -2524,6 +2922,9 @@ packages: '@leather-wallet/tokens@0.5.2': resolution: {integrity: sha512-+/1dM24D/d7lyW8f4WFDmAgtsRZmUu+PhmFELa2nD4esYcP4zehVNh+rJN+xfW9U6JgSNXuii2xRjdD+XkSGdg==} + '@leather-wallet/ui@1.4.4': + resolution: {integrity: sha512-5kP7882wb30PfySleC28fB2+5imJnlXzBcJWm3zOcUdLk1HPHJARCaWs4mBTzZo2Z0eoH2bPMacIjWSeCOODNw==} + '@leather-wallet/utils@0.8.2': resolution: {integrity: sha512-P24T7J1JN7k+vXhrLgGi37Pai4XzFBm0IgYfGjg80AQwhFBtCV1KAju6IPEpNcUHggjKIniP5V1kxJtU1rIh4g==} @@ -2620,6 +3021,10 @@ packages: '@npmcli/fs@1.1.1': resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + '@npmcli/fs@3.1.1': + resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@npmcli/map-workspaces@3.0.4': resolution: {integrity: sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -3402,6 +3807,158 @@ packages: '@types/react-dom': optional: true + '@react-native-community/cli-clean@13.6.6': + resolution: {integrity: sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ==} + + '@react-native-community/cli-config@13.6.6': + resolution: {integrity: sha512-mbG425zCKr8JZhv/j11382arezwS/70juWMsn8j2lmrGTrP1cUdW0MF15CCIFtJsqyK3Qs+FTmqttRpq81QfSg==} + + '@react-native-community/cli-debugger-ui@13.6.6': + resolution: {integrity: sha512-Vv9u6eS4vKSDAvdhA0OiQHoA7y39fiPIgJ6biT32tN4avHDtxlc6TWZGiqv7g98SBvDWvoVAmdPLcRf3kU+c8g==} + + '@react-native-community/cli-doctor@13.6.6': + resolution: {integrity: sha512-TWZb5g6EmQe2Ua2TEWNmyaEayvlWH4GmdD9ZC+p8EpKFpB1NpDGMK6sXbpb42TDvwZg5s4TDRplK0PBEA/SVDg==} + + '@react-native-community/cli-hermes@13.6.6': + resolution: {integrity: sha512-La5Ie+NGaRl3klei6WxKoOxmCUSGGxpOk6vU5pEGf0/O7ky+Ay0io+zXYUZqlNMi/cGpO7ZUijakBYOB/uyuFg==} + + '@react-native-community/cli-platform-android@13.6.6': + resolution: {integrity: sha512-/tMwkBeNxh84syiSwNlYtmUz/Ppc+HfKtdopL/5RB+fd3SV1/5/NPNjMlyLNgFKnpxvKCInQ7dnl6jGHJjeHjg==} + + '@react-native-community/cli-platform-apple@13.6.6': + resolution: {integrity: sha512-bOmSSwoqNNT3AmCRZXEMYKz1Jf1l2F86Nhs7qBcXdY/sGiJ+Flng564LOqvdAlVLTbkgz47KjNKCS2pP4Jg0Mg==} + + '@react-native-community/cli-platform-ios@13.6.6': + resolution: {integrity: sha512-vjDnRwhlSN5ryqKTas6/DPkxuouuyFBAqAROH4FR1cspTbn6v78JTZKDmtQy9JMMo7N5vZj1kASU5vbFep9IOQ==} + + '@react-native-community/cli-server-api@13.6.6': + resolution: {integrity: sha512-ZtCXxoFlM7oDv3iZ3wsrT3SamhtUJuIkX2WePLPlN5bcbq7zimbPm2lHyicNJtpcGQ5ymsgpUWPCNZsWQhXBqQ==} + + '@react-native-community/cli-tools@13.6.6': + resolution: {integrity: sha512-ptOnn4AJczY5njvbdK91k4hcYazDnGtEPrqIwEI+k/CTBHNdb27Rsm2OZ7ye6f7otLBqF8gj/hK6QzJs8CEMgw==} + + '@react-native-community/cli-types@13.6.6': + resolution: {integrity: sha512-733iaYzlmvNK7XYbnWlMjdE+2k0hlTBJW071af/xb6Bs+hbJqBP9c03FZuYH2hFFwDDntwj05bkri/P7VgSxug==} + + '@react-native-community/cli@13.6.6': + resolution: {integrity: sha512-IqclB7VQ84ye8Fcs89HOpOscY4284VZg2pojHNl8H0Lzd4DadXJWQoxC7zWm8v2f8eyeX2kdhxp2ETD5tceIgA==} + engines: {node: '>=18'} + hasBin: true + + '@react-native/assets-registry@0.73.1': + resolution: {integrity: sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==} + engines: {node: '>=18'} + + '@react-native/assets-registry@0.74.83': + resolution: {integrity: sha512-2vkLMVnp+YTZYTNSDIBZojSsjz8sl5PscP3j4GcV6idD8V978SZfwFlk8K0ti0BzRs11mzL0Pj17km597S/eTQ==} + engines: {node: '>=18'} + + '@react-native/assets-registry@0.74.84': + resolution: {integrity: sha512-dzUhwyaX04QosWZ8zyaaNB/WYZIdeDN1lcpfQbqiOhZJShRH+FLTDVONE/dqlMQrP+EO7lDqF0RrlIt9lnOCQQ==} + engines: {node: '>=18'} + + '@react-native/babel-plugin-codegen@0.73.4': + resolution: {integrity: sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==} + engines: {node: '>=18'} + + '@react-native/babel-plugin-codegen@0.74.83': + resolution: {integrity: sha512-+S0st3t4Ro00bi9gjT1jnK8qTFOU+CwmziA7U9odKyWrCoRJrgmrvogq/Dr1YXlpFxexiGIupGut1VHxr+fxJA==} + engines: {node: '>=18'} + + '@react-native/babel-plugin-codegen@0.74.84': + resolution: {integrity: sha512-UR4uiii5szIJA84mSC6GJOfYKDq7/ThyetOQT62+BBcyGeHVtHlNLNRzgaMeLqIQaT8Fq4pccMI+7QqLOMXzdw==} + engines: {node: '>=18'} + + '@react-native/babel-preset@0.73.21': + resolution: {integrity: sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + + '@react-native/babel-preset@0.74.83': + resolution: {integrity: sha512-KJuu3XyVh3qgyUer+rEqh9a/JoUxsDOzkJNfRpDyXiAyjDRoVch60X/Xa/NcEQ93iCVHAWs0yQ+XGNGIBCYE6g==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + + '@react-native/babel-preset@0.74.84': + resolution: {integrity: sha512-WUfu6Y4aGuVdocQZvx33BJiQWFH6kRCHYbZfBn2psgFrSRLgQWEQrDCxqPFObNAVSayM0rNhp2FvI5K/Eyeqlg==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + + '@react-native/codegen@0.73.3': + resolution: {integrity: sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==} + engines: {node: '>=18'} + peerDependencies: + '@babel/preset-env': ^7.1.6 + + '@react-native/codegen@0.74.83': + resolution: {integrity: sha512-GgvgHS3Aa2J8/mp1uC/zU8HuTh8ZT5jz7a4mVMWPw7+rGyv70Ba8uOVBq6UH2Q08o617IATYc+0HfyzAfm4n0w==} + engines: {node: '>=18'} + peerDependencies: + '@babel/preset-env': ^7.1.6 + + '@react-native/codegen@0.74.84': + resolution: {integrity: sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==} + engines: {node: '>=18'} + peerDependencies: + '@babel/preset-env': ^7.1.6 + + '@react-native/community-cli-plugin@0.74.83': + resolution: {integrity: sha512-7GAFjFOg1mFSj8bnFNQS4u8u7+QtrEeflUIDVZGEfBZQ3wMNI5ycBzbBGycsZYiq00Xvoc6eKFC7kvIaqeJpUQ==} + engines: {node: '>=18'} + + '@react-native/debugger-frontend@0.74.83': + resolution: {integrity: sha512-RGQlVUegBRxAUF9c1ss1ssaHZh6CO+7awgtI9sDeU0PzDZY/40ImoPD5m0o0SI6nXoVzbPtcMGzU+VO590pRfA==} + engines: {node: '>=18'} + + '@react-native/dev-middleware@0.74.83': + resolution: {integrity: sha512-UH8iriqnf7N4Hpi20D7M2FdvSANwTVStwFCSD7VMU9agJX88Yk0D1T6Meh2RMhUu4kY2bv8sTkNRm7LmxvZqgA==} + engines: {node: '>=18'} + + '@react-native/gradle-plugin@0.74.83': + resolution: {integrity: sha512-Pw2BWVyOHoBuJVKxGVYF6/GSZRf6+v1Ygc+ULGz5t20N8qzRWPa2fRZWqoxsN7TkNLPsECYY8gooOl7okOcPAQ==} + engines: {node: '>=18'} + + '@react-native/js-polyfills@0.73.1': + resolution: {integrity: sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==} + engines: {node: '>=18'} + + '@react-native/js-polyfills@0.74.83': + resolution: {integrity: sha512-/t74n8r6wFhw4JEoOj3bN71N1NDLqaawB75uKAsSjeCwIR9AfCxlzZG0etsXtOexkY9KMeZIQ7YwRPqUdNXuqw==} + engines: {node: '>=18'} + + '@react-native/metro-babel-transformer@0.73.15': + resolution: {integrity: sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + + '@react-native/metro-babel-transformer@0.74.83': + resolution: {integrity: sha512-hGdx5N8diu8y+GW/ED39vTZa9Jx1di2ZZ0aapbhH4egN1agIAusj5jXTccfNBwwWF93aJ5oVbRzfteZgjbutKg==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + + '@react-native/metro-config@0.73.5': + resolution: {integrity: sha512-3bNWoHzOzP/+qoLJtRhOVXrnxKmSY3i4y5PXyMQlIvvOI/GQbXulPpEZxK/yUrf1MmeXHLLFufFbQWlfDEDoxA==} + engines: {node: '>=18'} + + '@react-native/normalize-colors@0.74.83': + resolution: {integrity: sha512-jhCY95gRDE44qYawWVvhTjTplW1g+JtKTKM3f8xYT1dJtJ8QWv+gqEtKcfmOHfDkSDaMKG0AGBaDTSK8GXLH8Q==} + + '@react-native/virtualized-lists@0.74.83': + resolution: {integrity: sha512-rmaLeE34rj7py4FxTod7iMTC7BAsm+HrGA8WxYmEJeyTV7WSaxAkosKoYBz8038mOiwnG9VwA/7FrB6bEQvn1A==} + engines: {node: '>=18'} + peerDependencies: + '@types/react': ^18.2.6 + react: '*' + react-native: '*' + peerDependenciesMeta: + '@types/react': + optional: true + '@redux-devtools/app@6.0.0': resolution: {integrity: sha512-jR6Nm/Pe/ImQ2XmJC1JIyVduQ/3J4bXQhtvoH/pw8WuVJrQvFzhfY5McS+LbHB6H+Vjfhq7mq3u1T2dcQ6II3g==} peerDependencies: @@ -3556,6 +4113,36 @@ packages: peerDependencies: react: '>=16 || >=17' + '@rnx-kit/chromium-edge-launcher@1.0.0': + resolution: {integrity: sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==} + engines: {node: '>=14.15'} + + '@rnx-kit/console@1.1.0': + resolution: {integrity: sha512-N+zFhTSXroiK4eL26vs61Pmtl7wzTPAKLd4JKw9/fk5cNAHUscCXF/uclzuYN61Ye5AwygIvcwbm9wv4Jfa92A==} + + '@rnx-kit/metro-config@1.3.14': + resolution: {integrity: sha512-RjBM2gsDx9Ba7b39ussuRbqJsez8W37puM4oZGSLbneuhQ9kpJcC0omf2QYMKhQisTy0/4jv7L9WdpzvzXR/ow==} + peerDependencies: + '@react-native/metro-config': '*' + react: '*' + react-native: '*' + peerDependenciesMeta: + '@react-native/metro-config': + optional: true + + '@rnx-kit/metro-resolver-symlinks@0.1.35': + resolution: {integrity: sha512-DgpFPIVngiWvCclO5MEdhd9HW81GZJ/9g/pUtPs8lF8H1VGOPg1tuX7rOtDdMXEEcKnnFemctqwV8ExZX3g6nw==} + + '@rnx-kit/tools-node@2.1.1': + resolution: {integrity: sha512-jZC/pmeM3fv4LwpkVWlLyv5dOh6haUw/dBaDC0e5zkfehkIdLtRhVwz4l7iH9MW/i4I9OySoc+2DtDpX7KZyZA==} + + '@rnx-kit/tools-react-native@1.3.5': + resolution: {integrity: sha512-fc+3hxdlicW3GEhI0Umjj+rnVLSLuxVJoGvUBwWvcaCnlNaaTssBjhd7xSvlfLDrgtuXxhBruA76wdDdZI8tiQ==} + + '@rnx-kit/tools-workspaces@0.1.6': + resolution: {integrity: sha512-af5CYnc1dtnMIAl2u0U1QHUCGgLNN9ZQkYCAtQOHPxxgF5yX2Cr9jrXLZ9M+/h/eSVbK0ETjJWbNbPoiUSW/7w==} + engines: {node: '>=14.15'} + '@rollup/rollup-android-arm-eabi@4.14.0': resolution: {integrity: sha512-jwXtxYbRt1V+CdQSy6Z+uZti7JF5irRKF8hlKfEnF/xJpcNGuuiZMBvuoYM+x9sr9iWGnzrlM0+9hvQ1kgkf1w==} cpu: [arm] @@ -3673,6 +4260,9 @@ packages: '@segment/isodate@1.0.3': resolution: {integrity: sha512-BtanDuvJqnACFkeeYje7pWULVv8RgZaqKHWwGFnL/g/TH/CcZjkIVTfGDp/MAxmilYHUkrX70SqwnYSTNEaN7A==} + '@segment/loosely-validate-event@2.0.0': + resolution: {integrity: sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==} + '@segment/tsub@2.0.0': resolution: {integrity: sha512-NzkBK8GwPsyQ74AceLjENbUoaFrObnzEKOX4ko2wZDuIyK+DnDm3B//8xZYI2LCKt+wUD55l6ygfjCoVs8RMWw==} hasBin: true @@ -3779,6 +4369,21 @@ packages: peerDependencies: webpack: '>=4.40.0' + '@shopify/restyle@2.4.2': + resolution: {integrity: sha512-r01j9bbXkhZZkGkLnE6jsJvSCkcjwXBySfe8bQCB7duEfQn36mU6WumNc2pndzXpZhPSevppyXzFZ2jY3XUakw==} + peerDependencies: + react: '*' + react-native: '*' + + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -3794,6 +4399,12 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@socket.io/component-emitter@3.0.0': resolution: {integrity: sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q==} @@ -4375,26 +4986,26 @@ packages: peerDependencies: react: '>= 16.3.0' - '@storybook/addon-actions@8.0.1': - resolution: {integrity: sha512-qFd1NOI9C16/Jo+7XQQXRsoTzcvKPlT6M5lU47lGLuyLwbZSp5EKxmy8+uKTnyLF/2BTAvOLZ/wYmw+Gj4VzOA==} + '@storybook/addon-actions@8.1.4': + resolution: {integrity: sha512-3q/DCcnSjpuWBoKpA+0j1etXyMOu+GsdUtxv041tsNjMMwyc+CfHUGiAHMyQ0TpEf8MPQoTeZsRPrEZwVUNXow==} - '@storybook/addon-backgrounds@8.0.1': - resolution: {integrity: sha512-A06rUg7yEmyEoRTS8B46CkiUh49lKQ9ipGK323O7S9qkwbXSLvqBQTaKmGstZq6p0begPF1DWaGUxCXfU3qr2g==} + '@storybook/addon-backgrounds@8.1.4': + resolution: {integrity: sha512-v4CJ2fQJyhy1G73DcuhGwAk8HfYpSUavB7XIEflm9riqSZkzUAu/H51a4cncszXgIjzGcKRRtl+QZs1g/4J96A==} - '@storybook/addon-controls@8.0.1': - resolution: {integrity: sha512-MadJq5fmFUI1eNkDyJSSqtF/IHD+hv/gS0eFNd9+CIioHaysJG2g7t27lG703BV+Qwzz9ekilKBJ/z0bIuqm8g==} + '@storybook/addon-controls@8.1.4': + resolution: {integrity: sha512-YuimjOeHYKMXAAs8tYVen2A84ZJNNuvoI6t+paZU570hkEeh5iPggC2UneNAgtQBds98TWwEy+3YggXtfon6iw==} - '@storybook/addon-docs@8.0.1': - resolution: {integrity: sha512-G03ELd2OEycuYoziwbomIgHGUXNIVU2MoCITU7Q1e2zfFJ4amMab7btHmUm4eTnUChXvzbYIucti3Sp9sQNsKw==} + '@storybook/addon-docs@8.1.4': + resolution: {integrity: sha512-k734R4CV/U4qiNwBNfxI6R71hoL1TDQZEwyoqbyW05exUu6orWGIf1jrWtz6q67ykTNTCTCsFq2PI3K1LvYyjw==} - '@storybook/addon-essentials@8.0.1': - resolution: {integrity: sha512-ExN5v9p/08ArWVB1eARWri8UdzaXzZgrPCjV+Ip/Bljh/NYuNOd1PhfQ84IyBOB+RhtlPX9hh7fAdQiDa0MN0g==} + '@storybook/addon-essentials@8.1.4': + resolution: {integrity: sha512-fQQAnV1TMQIFHWpNCINhzPdW3KYIwIp1MRzjHagylYT/Eqx+JNcT9z9MPqN0jQvV9z2retHgMydwusFGAuG7oQ==} - '@storybook/addon-highlight@8.0.1': - resolution: {integrity: sha512-7+Q4dpQRbBylFKexSSvyksFqYXTIKMQzIcmL/XirUPKzDenCyuGfhDFWtredsb+kIR4P/Gg9MepMWkfBsoupuA==} + '@storybook/addon-highlight@8.1.4': + resolution: {integrity: sha512-Wx8p/DrEuf/fis5x9XHT1gYEJaM9ia/aPPqUfFq/o66z2jUPgITZ49aYRMA2VXxViG6RPAu2cp2ma4FrHy0FuA==} - '@storybook/addon-interactions@8.0.1': - resolution: {integrity: sha512-1gGfYu0C/c7P/7cz89d3kaN3z9ZjDD2yMoVQ1WzOlCdWwRrm9d1Ox+UUGAfNmjd8XyAST7woYcqT/OWrkdrj1A==} + '@storybook/addon-interactions@8.1.4': + resolution: {integrity: sha512-l7LNMgpuMBw7qvrJBpH7lh/EMNOMB9rNyGQOF4RVW7VO3dA5mfPPXnBElQbVyijFMuAtebzenAehgMKusH9UJw==} '@storybook/addon-links@8.0.1': resolution: {integrity: sha512-cYAPSr/mO++ZZWcNigfTEDPYshozT0hYpHJ7S5DIhUTZCpv92IDudN0HjYmEQnz4+OdsGaQ6GnITI2Fr8IOfQA==} @@ -4404,49 +5015,38 @@ packages: react: optional: true - '@storybook/addon-mdx-gfm@8.0.1': - resolution: {integrity: sha512-1z7pBMVgBnriQeVgjJ8106gihGV7uaLCG2k54QUgXhmyIfb0wWMBE/RB6VhRjkH3vN9eOb+1xjup3MQO3QWahg==} + '@storybook/addon-mdx-gfm@8.1.4': + resolution: {integrity: sha512-vI8iVsaxZ9XbIQZtrlTqyBy10xn0udEQJA73eSPWCl58uB10DuKBx1a39FHD7h+wgIxMW9tBmsHyyN6UqCVgnA==} - '@storybook/addon-measure@8.0.1': - resolution: {integrity: sha512-dHZY8K5FWoEYuIK9+6dwky/IsqCGlNuGEU2gn2Q2OiIzHOveumxMtGQkWk8hrzRnwQB/eMbijbdwd+d0aBJp1w==} + '@storybook/addon-measure@8.1.4': + resolution: {integrity: sha512-gj0QqcSiU/k8KseWGcqk0rPxaPyDjhFPwOrLfpIhQVhLdmWnWQKtnfCyFVBV7lC6znDAGPuJz+eh+hqqA+j9qA==} '@storybook/addon-onboarding@8.0.1': resolution: {integrity: sha512-jS4vs2kHc6C13aycaYWpAhM6FneM4JrAsM+j0zGEEDcSNsUVVuw5NDb5qivMkoe1tp500k1PrI9re4GjLQASWA==} - '@storybook/addon-outline@8.0.1': - resolution: {integrity: sha512-1zPBQ+J4IUjULXlBbf3lLt5nblMUwQiTV6HAjngeczl3pCaZ3Q86lVAURE2K/gmLElsRALX4XoLw8M7hY4iYxQ==} + '@storybook/addon-outline@8.1.4': + resolution: {integrity: sha512-SUjZh83a8P6SIERToG86p1u999nlk9zwz4SsXh4zAOpfr+XVpvNiHNLTu0LexpjnWEFnSOEOMx73vpSqWduDrw==} '@storybook/addon-styling-webpack@1.0.0': resolution: {integrity: sha512-jo1kzn7pi+NA+LZxrWoRvW6w7dXIKY/BjTG80XX2uU92lIKT+X1k/9vYk/0KPVK3Bsf4tO6ToAuqIRyOk7MHtg==} peerDependencies: webpack: ^5.0.0 - '@storybook/addon-toolbars@8.0.1': - resolution: {integrity: sha512-Fa5H+iiQsYtcaF/2RhzTOo9YWMzOhjkl2muPOe3f/a7Z4eR4R4pGmJv/JZ1qfpRk67PoyFcUUkFnNWjBF0yLjQ==} + '@storybook/addon-toolbars@8.1.4': + resolution: {integrity: sha512-bTFRL5BWHoLCyq93gaEVkqCgsvw8egP7D1+Nv/mbnoeOZQzG6hnqkRfJS+d0m8iLB8rTbN0H83tYt8TZrDuFXg==} - '@storybook/addon-viewport@8.0.1': - resolution: {integrity: sha512-8p4oDI1lSicLRhbRSZUCuUAJoJrZ+FG/ccgtEV6y6a4GRMkBbUpoqTMyHQKfDqszFmr7G4lG2HVXYCura8a3zg==} + '@storybook/addon-viewport@8.1.4': + resolution: {integrity: sha512-OmHJzs6ZzLxD2ihNoc3s2YOJS9PDQNvDej6yYlWRLzS8DAW8ADE3DYl0i8wv/zDXbgEVxyEYwe8JhouIu8x5MA==} '@storybook/addon-webpack5-compiler-swc@1.0.2': resolution: {integrity: sha512-o8PPyFCl48bkqmcwiX6RNIMBdXe96EqmB1JuMzInQX77f7lEAN6sAE17/pdlZmmRmzIEADqgumOXLKL3ViObzw==} engines: {node: '>=18'} - '@storybook/blocks@8.0.1': - resolution: {integrity: sha512-S1aPjmhS3bTvyAeUNHULWzmuGFJ59DiaV5eGv3Dg5u8BKGlYXGe39wItE4p/KR/OqkwtY5++rFHrWQiJeEP90A==} + '@storybook/blocks@8.1.4': + resolution: {integrity: sha512-Viqb5Hm5Eb9xrmjY7MV9caL5xPJF90vPBALxKrxL8Io4uoAWlzi3uBlx8Hda0nF2qf/PkFdGBM4WqHFM3wXG+w==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/blocks@8.0.6': - resolution: {integrity: sha512-ycuPJwxyngSor4YNa4kkX3rAmX+w2pXNsIo+Zs4fEdAfCvha9+GZ/3jQSdrsHxjeIm9l9guiv4Ag8QTnnllXkw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta peerDependenciesMeta: react: optional: true @@ -4456,19 +5056,16 @@ packages: '@storybook/builder-manager@8.1.4': resolution: {integrity: sha512-kbbekBBZ+OKsHknHqAQSRDAQiXBP8RJn0QGX/nF0colq6wkTB4T8KiH7hEGpwFb6gECFCu47T8Ku+wkY8nlfMw==} - '@storybook/builder-webpack5@8.0.1': - resolution: {integrity: sha512-1UOdF5Ic5Ss86VwcZ5E0h5TJT6hcQTQFF+mjSla3Yy9Q9mvWtyr4xHYnTH7RXNB0cQXbFvaPvQLnBA0aOq/8HQ==} + '@storybook/builder-webpack5@8.1.4': + resolution: {integrity: sha512-pGHFH5IlU1F3E5DSf54vUySxM9QWONujhgmHy50A/4bDsi0Vd1l+eulx8gb43KJ0/mLUyKG61kYhZRO1AZsbUQ==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/channels@8.0.1': - resolution: {integrity: sha512-zKhOOI/NU5w0rMGrGNlWkBLhNq7l33pRej9AJ+4rQcuJ3cc0ONkSktktYK8ThQ49I1ZOn7eS+h0BEmXX1Mr3Qg==} - - '@storybook/channels@8.0.6': - resolution: {integrity: sha512-IbNvjxeyQKiMpb+gSpQ7yYsFqb8BM/KYgfypJM3yJV6iU/NFeevrC/DA6/R+8xWFyPc70unRNLv8fPvxhcIu8Q==} + '@storybook/channels@7.6.15': + resolution: {integrity: sha512-UPDYRzGkygYFa8QUpEiumWrvZm4u4RKVzgiBt9C4RmHORqkkZzL9LXhaZJp2SmIz1ND5gx6KR5ze8ZnAdwxxoQ==} '@storybook/channels@8.1.4': resolution: {integrity: sha512-cmITS0w8e9Ys1vqp8S7+uyQKgqVIdUEWs9FK90XeAs0lcuvW10S3qdrarWPbUgKFFFsGIGPIvImbT1vf80/bcQ==} @@ -4477,11 +5074,8 @@ packages: resolution: {integrity: sha512-WFUIJdhkpaTWRRdXahi6lgTdRMTLPfJP2+jehUhhxc/7Yg5VP1FTjS/diSCKEb1yKz8ybBta+ybuoVrM0qQRaA==} hasBin: true - '@storybook/client-logger@8.0.1': - resolution: {integrity: sha512-8NgJlVixYQB+c0zduoCAcOtEm4M9y776QKtmXvCaCtxyXl2uCbZFAMy6iai6ctoiVge0xiRaEzIkWKT1pHLDig==} - - '@storybook/client-logger@8.0.6': - resolution: {integrity: sha512-et/IHPHiiOwMg93l5KSgw47NZXz5xOyIrIElRcsT1wr8OJeIB9DzopB/suoHBZ/IML+t8x91atdutzUN2BLF6A==} + '@storybook/client-logger@7.6.15': + resolution: {integrity: sha512-n+K8IqnombqiQNnywVovS+lK61tvv/XSfgPt0cgvoF/hJZB0VDOMRjWsV+v9qQpj1TQEl1lLWeJwZMthTWupJA==} '@storybook/client-logger@8.1.4': resolution: {integrity: sha512-I0PqDoNZf4rqrJYwFHhCwuXumpxvzyTzI5qI5R2JT93i49QShI3pLXY31C9VemVBJmS+pBWVOm6RTIdkQiKVWw==} @@ -4489,23 +5083,17 @@ packages: '@storybook/codemod@8.1.4': resolution: {integrity: sha512-glPwKFc07h3h4ZhakEZIF/8fq3fGGM19hpB+RZRHU3dz4NL/TiZXwboxa61wNZe1ehWqbGDaecwANK45DWsNuA==} - '@storybook/components@8.0.1': - resolution: {integrity: sha512-xrOL0CLirSnzZTtuXD+bgk1+MF36DuTG4ADD89A00dl22Uquo+MHFI9kzqxGtyb7PPpcJQjcgw/1WoSMSepPvQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/components@8.0.6': - resolution: {integrity: sha512-6W2BAqAPJkrExk8D/ug2NPBPvMs05p6Bdt9tk3eWjiMrhG/CUKBzlBTEfNK/mzy3YVB6ijyT2DgsqzmWWYJ/Xw==} + '@storybook/components@8.1.4': + resolution: {integrity: sha512-Ef1gmHfId/T9tUyOZkvZJx3uEctxANM7OUXCiwJagL31hUdqV62GvE2Oi3JF9qlTO2jH6G5chqFduGr016hR9A==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/core-common@8.0.1': - resolution: {integrity: sha512-+t9qyJ/b/yRDCsp6zW68NsViieqCUuH6S8BpbSPWnkuGTYp98BMMGQoY4cqufUcFPuDYMzwAN7wQ5/iM5b7DYQ==} + '@storybook/core-client@7.6.15': + resolution: {integrity: sha512-jwWol+zo+ItKBzPm9i80bEL6seHMsV0wKSaViVMQ4TqHtEbNeFE8sFEc2NTr18VNBnQOdlQPnEWmdboXBUrGcA==} - '@storybook/core-common@8.0.6': - resolution: {integrity: sha512-Z4cA52SjcW6SAV9hayqVm5kyr362O20Zmwz7+H2nYEhcu8bY69y5p45aaoyElMxL1GDNu84GrmTp7dY4URw1fQ==} + '@storybook/core-common@7.6.15': + resolution: {integrity: sha512-VGmcLJ5U1r1s8/YnLbKcyB4GnNL+/sZIPqwlcSKzDXO76HoVFv1kywf7PbASote7P3gdhLSxBdg95LH2bdIbmw==} '@storybook/core-common@8.1.4': resolution: {integrity: sha512-hpJ1tDkseNzcf0XpNFbt2gEYdw5OjskWmviSjQwoGHjCvpvWQCo0hvuj7v9cZHgSScOreLu7kh7cl9hoXhA+dQ==} @@ -4515,11 +5103,8 @@ packages: prettier: optional: true - '@storybook/core-events@8.0.1': - resolution: {integrity: sha512-AI8W9YNNXtkC9W1wL+LV2M/hd4SJWVOGNFhwf+bGSFfGb9NLl23CIBWg8XgYVpTtil3etw5ODDgykEmUBcKsKw==} - - '@storybook/core-events@8.0.6': - resolution: {integrity: sha512-EwGmuMm8QTUAHPhab4yftQWoSCX3OzEk6cQdpLtbNFtRRLE9aPZzxhk5Z/d3KhLNSCUAGyCiDt5I9JxTBetT9A==} + '@storybook/core-events@7.6.15': + resolution: {integrity: sha512-i4YnjGecbpGyrFe0340sPhQ9QjZZEBqvMy6kF4XWt6DYLHxZmsTj1HEdvxVl4Ej7V49Vw0Dm8MepJ1d4Y8MKrQ==} '@storybook/core-events@8.1.4': resolution: {integrity: sha512-oZAP3aRDeRyo2GQmADh4R3wJLIb9Ie0FUcWx8V4fvuydzeh6Pprgo//COCR+kySG4kRLqofWeF1Zzvft58Q0kg==} @@ -4527,17 +5112,11 @@ packages: '@storybook/core-server@8.1.4': resolution: {integrity: sha512-g7x3vzk3jOZrOySMbtxk8u4x/MAZyDIjrHMMBQO9mNXKl0AJfU0X1v3Qx9wg+314KfFG/Iq63mYaBjj3EDVFEg==} - '@storybook/core-webpack@8.0.1': - resolution: {integrity: sha512-QiZYA6mDgfInk10s2pXwSCGIgaUWeix/eo9Iizby3uGlNIu3XOfqfxvCwAE5EjlpLOaUdUbrB9UYr57k0x1PAg==} + '@storybook/core-webpack@8.1.4': + resolution: {integrity: sha512-rIv1aaog6dQhC8qYFUHLcv7XipfCSg4UMM4CIMDV5GM8+qcyiSeU1nsLnAXvhpnieSGmkimVqwPl8RPVB0Q/5g==} - '@storybook/csf-plugin@8.0.1': - resolution: {integrity: sha512-n3CEGP64gNUjyTKwByS5fpi7TnmUECsLpWH7KE/mpJVRm4omu/xlS1mEgikOxWFgxlXzotM1mAvjeWidvnMq/g==} - - '@storybook/csf-tools@8.0.1': - resolution: {integrity: sha512-jG7dP0DsYpV+sdp/EV0/mcuZ6bzaTRsX3N/vZySKTRCvef72IGyxAeZrAg4OoOla0B2t/wxc8RZCG8NGaxHu4Q==} - - '@storybook/csf-tools@8.0.6': - resolution: {integrity: sha512-MEBVxpnzqkBPyYXdtYQrY0SQC3oflmAQdEM0qWFzPvZXTnIMk3Q2ft8JNiBht6RlrKGvKql8TodwpbOiPeJI/w==} + '@storybook/csf-plugin@8.1.4': + resolution: {integrity: sha512-mrfyPg/tXTJES3Tg/OMArJ/0erbwWnsWvlSDRV3cPN2AhZdb7hj7/rLjOzFNzqlxdhyfIjuxUYBp9cz4SdgIrQ==} '@storybook/csf-tools@8.1.4': resolution: {integrity: sha512-0Bper543cY8k01MtFoatewpsw3popuukISeYbzz/26H6QHTojm7PD4ol2yQkcDC/EBA5cU0NbOKACXicd1b3WQ==} @@ -4554,11 +5133,11 @@ packages: '@storybook/docs-mdx@3.1.0-next.0': resolution: {integrity: sha512-t4syFIeSyufieNovZbLruPt2DmRKpbwL4fERCZ1MifWDRIORCKLc4NCEHy+IqvIqd71/SJV2k4B51nF7vlJfmQ==} - '@storybook/docs-tools@8.0.1': - resolution: {integrity: sha512-xgCe0wB3wHS+uD5xxl1vH5W6/BhvNkEkUtcfpEgA7XUkBqymLq+A6aMuKBNDi/rQI2KLnq8INirFrKaSZXKcmQ==} + '@storybook/docs-tools@7.6.15': + resolution: {integrity: sha512-npZEaI9Wpn9uJcRXFElqyiRw8bSxt95mLywPiEEGMT2kE5FfXM8d5Uj5O64kzoXdRI9IhRPEEZZidOtA/UInfQ==} - '@storybook/docs-tools@8.0.6': - resolution: {integrity: sha512-PsAA2b/Q1ki5IR0fa52MI+fdDkQ0W+mrZVRRj3eJzonGZYcQtXofTXQB7yi0CaX7zzI/N8JcdE4bO9sI6SrOTg==} + '@storybook/docs-tools@8.1.4': + resolution: {integrity: sha512-taAyvDUYwOj/GOmmB850osdjLc4rW9rwfpGUewQOG17CAAZYRPchMjUGPTS96jt3RzPMPiJkV9TS7BLXmJ9kQg==} '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} @@ -4570,14 +5149,8 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/instrumenter@8.0.1': - resolution: {integrity: sha512-r01qrQZiQnf1eJ/e4NYGbG13TVU6CTwtT0KdgiJTAn/XU4QEsuWBgiudmx5+ko7zDjHMli4XW5yDgCZyefxqaw==} - - '@storybook/manager-api@8.0.1': - resolution: {integrity: sha512-LEUU8ueHAl8Vg8/NJjuMkqU+CQKhlACSphxMk4P6LWcmRl26/4lzcecH31NflxyjDt+HmCNji3mG81MhrBur9g==} - - '@storybook/manager-api@8.0.6': - resolution: {integrity: sha512-khYA5CM+LY/B5VsqqUmt2ivNLNqyIKfcgGsXHkOs3Kr5BOz8LhEmSwZOB348ey2C2ejFJmvKlkcsE+rB9ixlww==} + '@storybook/instrumenter@8.1.4': + resolution: {integrity: sha512-0FSEbrRdqJtND+re5Z462ZXy4WIcE45wjlGZd++ukoA7XKklYQdfRNyodNzibUAA3FHbGGFZa5Omf53yN07C6A==} '@storybook/manager-api@8.1.4': resolution: {integrity: sha512-cupFijTFID2+XB4Utkqjtayw7uisPFYRGpfvpom+4Aq42sCNKWkE2WYoXCtgxB7SKWSHll6zL9+ZpesvJ6tWNg==} @@ -4585,37 +5158,34 @@ packages: '@storybook/manager@8.1.4': resolution: {integrity: sha512-hn6tSN/9vQqaeUDCp7KBNTPzxAHXgp2JRw5C3t0vKpJP0Pv2mfL2eeT/9liFMcTaCa3NU04rTq5C9vxIRLG70A==} + '@storybook/node-logger@7.6.15': + resolution: {integrity: sha512-C+sCvRjR+5uVU3VTrfyv7/RlPBxesAjIucUAK0keGyIZ7sFQYCPdkm4m/C4s+TcubgAzVvuoUHlRrSppdA7WzQ==} + '@storybook/node-logger@8.0.1': resolution: {integrity: sha512-uYWKSz9NhLOe2O60sJ4UPT1nzvbH0oR/YjK+OP3B4BySa6e195xY/5Uhou4lEaPSNU/0XXaLHCYeXjqeBjZopA==} - '@storybook/node-logger@8.0.6': - resolution: {integrity: sha512-mDRJLVAuTWauO0mnrwajfJV/6zKBJVPp/9g0ULccE3Q+cuqNfUefqfCd17cZBlJHeRsdB9jy9tod48d4qzGEkQ==} - '@storybook/node-logger@8.1.4': resolution: {integrity: sha512-tMcVPdTPN3ZWgzc4YA2MC3GQEuE6Cbx2AN2hQYhdF8O0v+IlAbnad5heUFVEM+fGBpoxZJtVaRohuAd6BR/Ffw==} - '@storybook/preset-react-webpack@8.0.1': - resolution: {integrity: sha512-PqEKrNy2efVYuhDJXtq+eMvsGy7NUngec4AIaGwX2CRG8bJsAx9x6p8f2hmRwNn9fkhloPyM/+ryI31QW/ZgCA==} + '@storybook/preset-react-webpack@8.1.4': + resolution: {integrity: sha512-yyfF8Z5vu5J4ePkbV1NZYsrzeBNTOmpDj/pMQT8cvufHAw9kCsgunksmXWVFUUWo9Jthf7U9q/78+qg8XHFsDw==} engines: {node: '>=18.0.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/preview-api@8.0.1': - resolution: {integrity: sha512-grIox2BWEzaxXfBTIc/ODO/DerGk8PGdH6T/GIDgRxbunWndfVRT57j9sUfXuYn7nb4fPFSFD7N3gYhznpslHg==} - - '@storybook/preview-api@8.0.6': - resolution: {integrity: sha512-O5SvBqlHIO/Cf5oGZUJV2npkp9bLqg9Sn0T0a5zXolJbRy+gP7MDyz4AnliLpTn5bT2rzVQ6VH8IDlhHBq3K6g==} + '@storybook/preview-api@7.6.15': + resolution: {integrity: sha512-2KN9vlizF6sFlYsJEGnFqcQaJXs4TTdawC1VazVdtaMSHANDxxDu8F1cP+u7lpPH3DkNZUmTGQDBYfYY9xR0eQ==} '@storybook/preview-api@8.1.4': resolution: {integrity: sha512-WHS3k/8UZT5vYJ+evSAMLG89sv1rBaojTQ2XNgv/DX74vK4l0MQ61wsORC0v7ScGyEuwYIuSCqHH5NNrOBLxmA==} - '@storybook/preview@8.0.1': - resolution: {integrity: sha512-HSYwtMFJPJuNPfrBizCjDH/P8ZcyzBpgQg+/D6xcI4odSY7j2ub7QWCvbrSv1/llp0lMHDDRsFyT847qRPgwuQ==} + '@storybook/preview@8.1.4': + resolution: {integrity: sha512-M2scYBLMda0EZk9B1Pvlig6GZfkWrbw2gBd5LTSwLV5gpuA5IXYeK/k0J+molE8Cl+Jpgu016y85RiUxA7YC1g==} '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0': resolution: {integrity: sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==} @@ -4623,39 +5193,50 @@ packages: typescript: '>= 4.x' webpack: '>= 4' - '@storybook/react-dom-shim@8.0.1': - resolution: {integrity: sha512-WQJiImmR4ToJTLYICwm50c3c8+vv3PFzvkoW+sMxQbYoJBJM8lfvbvsQu80aedG6C1VGEMe68mXSXSQqTvL+bA==} + '@storybook/react-dom-shim@7.6.15': + resolution: {integrity: sha512-2+X0HIxIyvjfSKVyGGjSJJLEFJ2ox7Rr8FjlMiRo5QfoOJhohZuWH7p4Lw7JMwm5PotnjrwlfsZI3cCilYJeYA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/react-webpack5@8.0.1': - resolution: {integrity: sha512-yyaIVpAzPR3DmslYiQaBZ6Mnro0Hf1PEhc817AhhVfqo3Zf3UWY6voreXJsgj4WPtUzpCw2lNWnoZsjG1/V7eA==} + '@storybook/react-dom-shim@8.1.4': + resolution: {integrity: sha512-NJBuOml3o/kgwapMB4EAt92wX1lQUgG2fG6qfBkkJ1Djk4bUW/GZndCv9sArp+wncD4rfAVYdEtI8bxmqmv49A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + + '@storybook/react-webpack5@8.1.4': + resolution: {integrity: sha512-gSCZhsqE6rxfenhP5YW16q7QbmJan5EfmOOGjufpQN1mc6+Gyx+79jTXEk0aiG9jwyOGoq8Nl3AQ9IWvrkKWsA==} engines: {node: '>=18.0.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta typescript: '>= 4.2.x' peerDependenciesMeta: typescript: optional: true - '@storybook/react@8.0.1': - resolution: {integrity: sha512-8d3nklcf2ePC/23kPVdKyQGjCfgnOeETU3b/DxA3bBE6T9EkiknjH4JJebBkmYh21oMgDYn5RpCrP73niyc0MQ==} - engines: {node: '>=18.0.0'} + '@storybook/react@7.6.15': + resolution: {integrity: sha512-oJMSh4iTGu6OqCmj0LhkuPyMkxGMTCoohN4HcDpXd96jCSyWotVebRsg9xm5ddB7f54e6DY4XDoGH0WnVoR23g==} + engines: {node: '>=16.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - typescript: '>= 4.2.x' + typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/router@8.0.1': - resolution: {integrity: sha512-lTh0veiuQIygavalQu+n/fqZoyR1RoM6kLMPg9xLfH30aFL8I+e4G9Iq9782EguSMK1ya+QYjNe7Zo/CZCfezw==} - - '@storybook/router@8.0.6': - resolution: {integrity: sha512-ektN0+TyQPxVxcUvt9ksGizgDM1bKFEdGJeeqv0yYaOSyC4M1e4S8QZ+Iq/p/NFNt5XJWsWU+HtQ8AzQWagQfQ==} + '@storybook/react@8.1.4': + resolution: {integrity: sha512-v4MkiSK4oUVlHe5dnqHWgkM5k+ymMTFMP4NjpreVTvUj4iHhwyHRmXiD7LPKooKreakyPIeBIekkJV0RYMhlfg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + typescript: '>= 4.2.x' + peerDependenciesMeta: + typescript: + optional: true '@storybook/router@8.1.4': resolution: {integrity: sha512-1470aScDa8Z1cVQEi3DotrgiyHW1b88vumFsYVyAZjaqs+21NHE9uIbnyIajVoSuyGxZD0sb2PWeATjsD1FDcQ==} @@ -4663,30 +5244,8 @@ packages: '@storybook/telemetry@8.1.4': resolution: {integrity: sha512-KRy1xKBWhTr6QOA/R21QPD9lCvD8vLUuAkxWy7QUd9kamXqLSXMTAogGPZRNwsVO5rubRsf0kSu0KEA+8kyJlA==} - '@storybook/test@8.0.1': - resolution: {integrity: sha512-GCHqLTqbPLog/VcNrdDnj7XzBflzsNrZeuGKvdwJBa1UQ9DD/Ozg8BGcgitxBtLxBDLx1XclIQvP9kMEgxkaZA==} - - '@storybook/theming@8.0.1': - resolution: {integrity: sha512-TUmSHRh3YrpJ25DYjD+9PpJaq9Qf9P1S2xpwfNARM9r2KpkMF1/RgqnnQgZpP9od0Tzvkji7XPzxPU//EmQKEA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/theming@8.0.6': - resolution: {integrity: sha512-o/b12+nDp8WDFlE0qQilzJ2aIeOHD48MCoc+ouFRPRH4tUS5xNaBPYxBxTgdtFbwZNuOC2my4A37Uhjn6IwkuQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true + '@storybook/test@8.1.4': + resolution: {integrity: sha512-9fV7dWecNsKxy10LADZDxxI5lALkW1t+ibTBlH8Q2rCrKLeNU4yBeaHpKh+DqdIF1QRynNnvbBE/o7b7KlwBfQ==} '@storybook/theming@8.1.4': resolution: {integrity: sha512-ujJIBEnNXW8SXxwZp2mQ5k9vHFDqL0dB7bLACVdBJO7+euBJRGeJLRRoFJ/5LivQh0kKdIkaIrp1om32kgPrEA==} @@ -4699,11 +5258,8 @@ packages: react-dom: optional: true - '@storybook/types@8.0.1': - resolution: {integrity: sha512-JfNWLg+/dcLgLmIyTVSkM42cYgwhdIfMoLyhA1XR62Ssb9/PyuicLJYKSKS9blTkPtVEYJqcz51fmE9K67ym4w==} - - '@storybook/types@8.0.6': - resolution: {integrity: sha512-YKq4A+3diQ7UCGuyrB/9LkB29jjGoEmPl3TfV7mO1FvdRw22BNuV3GyJCiLUHigSKiZgFo+pfQhmsNRJInHUnQ==} + '@storybook/types@7.6.15': + resolution: {integrity: sha512-tLH0lK6SXECSfMpKin9bge+7XiHZII17n6jc9ZI1TfSBZJyq3M6VzWh2r1C2lC97FlkcKXjIwM3n8h1xNjnI+A==} '@storybook/types@8.1.4': resolution: {integrity: sha512-QfTJg5Hu3c0eiD38Z75bZsw0iCIpruOTGV5O65vCpNun7D6WUyyMM0aUJN3ytujGiHfjsWVgiSe+WoHxdy/fEA==} @@ -5122,6 +5678,9 @@ packages: '@types/filewriter@0.0.32': resolution: {integrity: sha512-Kpi2GXQyYJdjL8mFclL1eDgihn1SIzorMZjD94kdPZh9E4VxGOeyjPxi5LpsM4Zku7P0reqegZTt2GxhmA9VBg==} + '@types/find-cache-dir@3.2.1': + resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} + '@types/geojson@7946.0.13': resolution: {integrity: sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==} @@ -5167,6 +5726,15 @@ packages: '@types/is-empty@1.2.3': resolution: {integrity: sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw==} + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/jsdom@21.1.3': resolution: {integrity: sha512-1zzqSP+iHJYV4lB3lZhNBa012pubABkj9yG/GuXuf6LZH1cSPIJBqFDrm5JX65HHt6VOnNYdTui/0ySerRbMgA==} @@ -5338,6 +5906,9 @@ packages: '@types/source-list-map@0.1.6': resolution: {integrity: sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==} + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@types/styled-components@5.1.34': resolution: {integrity: sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA==} @@ -5392,6 +5963,15 @@ packages: '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@15.0.19': + resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} + + '@types/yargs@17.0.32': + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + '@types/yauzl@2.10.0': resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} @@ -5516,6 +6096,16 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@urql/core@2.3.6': + resolution: {integrity: sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==} + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + '@urql/exchange-retry@0.3.0': + resolution: {integrity: sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==} + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + '@vitest/coverage-istanbul@1.6.0': resolution: {integrity: sha512-h/BwpXehkkS0qsNCS00QxiupAqVkNi0WT19BR0dQvlge5oHghoSVLx63fABYFoKxVb7Ue7+k6V2KokmQ1zdMpg==} peerDependencies: @@ -5663,6 +6253,14 @@ packages: webpack-dev-server: optional: true + '@xmldom/xmldom@0.7.13': + resolution: {integrity: sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==} + engines: {node: '>=10.0.0'} + + '@xmldom/xmldom@0.8.10': + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -5857,6 +6455,9 @@ packages: '@stacks/network': '*' '@stacks/transactions': '*' + anser@1.4.10: + resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} + anser@2.1.1: resolution: {integrity: sha512-nqLm4HxOTpeLOxcmB3QWmV5TcDFhW9y/fyQ+hivtDFcK4OQ+pQ5fzPnXHM1Mfcm0VkLtvVi1TCPr++Qy0Q/3EQ==} @@ -5867,11 +6468,22 @@ packages: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-fragments@0.2.1: + resolution: {integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==} + ansi-html-community@0.0.8: resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} engines: {'0': node >= 0.8.0} hasBin: true + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -5902,6 +6514,12 @@ packages: app-root-dir@1.0.2: resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} + appdirsjs@1.2.7: + resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} + + application-config-path@0.1.1: + resolution: {integrity: sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==} + aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -5919,6 +6537,9 @@ packages: arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argon2-browser@1.18.0: resolution: {integrity: sha512-ImVAGIItnFnvET1exhsQB7apRztcoC5TnlSqernMJDUjbc/DLq3UEYeXFrLPrlaIl8cVfwnXb6wX2KpFf2zxHw==} @@ -5938,9 +6559,6 @@ packages: aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -6001,6 +6619,9 @@ packages: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + asn1.js@5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} @@ -6017,10 +6638,18 @@ packages: assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + ast-types@0.15.2: + resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} + engines: {node: '>=4'} + ast-types@0.16.1: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} + astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} hasBin: true @@ -6110,11 +6739,20 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-react-native-web@0.19.12: + resolution: {integrity: sha512-eYZ4+P6jNcB37lObWIg0pUbi7+3PKoU1Oie2j0C8UF3cXyXoR74tO2NBjI/FORb2LJyItJZEAmjU5pSaJYEL1w==} + babel-plugin-styled-components@2.1.4: resolution: {integrity: sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==} peerDependencies: styled-components: '>= 2' + babel-plugin-transform-flow-enums@0.0.2: + resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} + + babel-preset-expo@11.0.10: + resolution: {integrity: sha512-YBg40Om31gw9IPlRw5v8elzgtPUtNEh4GSibBi5MsmmYddGg4VPjWtCZIFJChN543qRmbGb/fa/kejvLX567hQ==} + babel-runtime@6.26.0: resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} @@ -6246,10 +6884,21 @@ packages: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} + bplist-creator@0.1.0: + resolution: {integrity: sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==} + bplist-parser@0.2.0: resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} engines: {node: '>= 5.10.0'} + bplist-parser@0.3.1: + resolution: {integrity: sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==} + engines: {node: '>= 5.10.0'} + + bplist-parser@0.3.2: + resolution: {integrity: sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==} + engines: {node: '>= 5.10.0'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -6302,12 +6951,24 @@ packages: bs58check@3.0.1: resolution: {integrity: sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==} + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + + buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -6320,6 +6981,9 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + bundle-n-require@1.1.1: resolution: {integrity: sha512-EB2wFjXF106LQLe/CYnKCMCdLeTW47AtcEtUfiqAOgr2a08k0+YgRklur2aLfEYHlhz6baMskZ8L2U92Hh0vyA==} @@ -6327,6 +6991,12 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} + bundle-require@4.2.1: + resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + bunyan@1.8.15: resolution: {integrity: sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==} engines: {'0': node >=0.10.0} @@ -6356,6 +7026,10 @@ packages: resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} engines: {node: '>= 10'} + cacache@18.0.3: + resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==} + engines: {node: ^16.14.0 || >=18.0.0} + cacheable-lookup@5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -6376,6 +7050,18 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} + caller-callsite@2.0.0: + resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} + engines: {node: '>=4'} + + caller-path@2.0.0: + resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} + engines: {node: '>=4'} + + callsites@2.0.0: + resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} + engines: {node: '>=4'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -6387,6 +7073,14 @@ packages: resolution: {integrity: sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==} engines: {node: '>=14.16'} + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + camelcase@7.0.1: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} @@ -6416,10 +7110,6 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@4.4.0: - resolution: {integrity: sha512-x9cHNq1uvkCdU+5xTkNh5WtgD4e4yDFCsp9jVc7N7qVeKeftv3gO/ZrviX5d+3ZfxdYnZXZYujjRInu1RogU6A==} - engines: {node: '>=4'} - chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} @@ -6461,6 +7151,9 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} @@ -6502,6 +7195,11 @@ packages: engines: {node: '>=12.13.0'} hasBin: true + chrome-launcher@0.15.2: + resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} + engines: {node: '>=12.13.0'} + hasBin: true + chrome-trace-event@1.0.3: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} engines: {node: '>=6.0'} @@ -6515,6 +7213,9 @@ packages: resolution: {integrity: sha512-8+MKhuLzVWNekBnej8w4M80O8Yfp91hBQimqEZx1nKEn7nNQwBa/CjjQSuK2c3vz9DukV5WRZcQz+zzLdrEC1Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -6559,6 +7260,10 @@ packages: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} + cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -6575,6 +7280,9 @@ packages: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} engines: {node: 10.* || >= 12.*} + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -6590,6 +7298,10 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + clsx@2.1.0: resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} engines: {node: '>=6'} @@ -6633,6 +7345,9 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + colorette@2.0.19: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} @@ -6650,6 +7365,9 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -6665,6 +7383,10 @@ packages: resolution: {integrity: sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==} engines: {node: '>= 0.6.x'} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} @@ -6694,6 +7416,9 @@ packages: compare-versions@6.1.0: resolution: {integrity: sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==} + component-type@1.2.2: + resolution: {integrity: sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==} + compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -6735,6 +7460,10 @@ packages: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -6812,6 +7541,10 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} + cosmiconfig@5.2.1: + resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} + engines: {node: '>=4'} + cosmiconfig@6.0.0: resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} engines: {node: '>=8'} @@ -6858,6 +7591,10 @@ packages: cross-sha256@1.2.0: resolution: {integrity: sha512-KViLNMDZKV7jwFqjFx+rNhG26amnFYYQ0S+VaFlVvpk8tM+2XbFia/don/SjGHg9WQxnFVi6z64CGPuF3T+nNw==} + cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -6866,9 +7603,16 @@ packages: resolution: {integrity: sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==} engines: {node: '>=14.9.0'} + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + crypto-browserify@3.12.0: resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} + crypto-random-string@1.0.0: + resolution: {integrity: sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==} + engines: {node: '>=4'} + crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} @@ -7102,6 +7846,9 @@ packages: '@types/d3': ^7.0.0 d3: ^7.0.0 + dag-map@1.0.2: + resolution: {integrity: sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==} + dashdash@1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} @@ -7148,6 +7895,14 @@ packages: supports-color: optional: true + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -7229,6 +7984,10 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} + default-gateway@4.2.0: + resolution: {integrity: sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==} + engines: {node: '>=6'} + default-gateway@6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} engines: {node: '>= 10'} @@ -7277,6 +8036,9 @@ packages: delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + denodeify@1.2.1: + resolution: {integrity: sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==} + depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -7441,6 +8203,10 @@ packages: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} + dotenv-expand@11.0.6: + resolution: {integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==} + engines: {node: '>=12'} + dotenv-webpack@8.1.0: resolution: {integrity: sha512-owK1JcsPkIobeqjVrk6h7jPED/W6ZpdFsMPR+5ursB7/SdgDyO+VzAU+szK8C8u3qUhtENyYnj8eyXMR5kkGag==} engines: {node: '>=10'} @@ -7553,6 +8319,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + env-editor@0.4.2: + resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==} + engines: {node: '>=8'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -7562,6 +8332,9 @@ packages: engines: {node: '>=4'} hasBin: true + eol@0.9.1: + resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -7571,6 +8344,10 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + errorhandler@1.5.1: + resolution: {integrity: sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==} + engines: {node: '>= 0.8'} + es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -7593,6 +8370,9 @@ packages: es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + es-module-lexer@1.5.3: + resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} @@ -7635,6 +8415,11 @@ packages: peerDependencies: esbuild: '>=0.12 <1' + esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.20.2: resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} @@ -7664,6 +8449,10 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -7819,6 +8608,13 @@ packages: evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + exec-async@2.2.0: + resolution: {integrity: sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==} + + execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + execa@4.1.0: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} @@ -7831,6 +8627,47 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + expo-asset@10.0.6: + resolution: {integrity: sha512-waP73/ccn/HZNNcGM4/s3X3icKjSSbEQ9mwc6tX34oYNg+XE5WdwOuZ9wgVVFrU7wZMitq22lQXd2/O0db8bxg==} + peerDependencies: + expo: '*' + + expo-constants@16.0.1: + resolution: {integrity: sha512-s6aTHtglp926EsugWtxN7KnpSsE9FCEjb7CgEjQQ78Gpu4btj4wB+IXot2tlqNwqv+x7xFe5veoPGfJDGF/kVg==} + peerDependencies: + expo: '*' + + expo-file-system@17.0.1: + resolution: {integrity: sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==} + peerDependencies: + expo: '*' + + expo-font@12.0.5: + resolution: {integrity: sha512-h/VkN4jlHYDJ6T6pPgOYTVoDEfBY0CTKQe4pxnPDGQiE6H+DFdDgk+qWVABGpRMH0+zXoHB+AEi3OoQjXIynFA==} + peerDependencies: + expo: '*' + + expo-keep-awake@13.0.2: + resolution: {integrity: sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==} + peerDependencies: + expo: '*' + + expo-modules-autolinking@1.11.1: + resolution: {integrity: sha512-2dy3lTz76adOl7QUvbreMCrXyzUiF8lygI7iFJLjgIQIVH+43KnFWE5zBumpPbkiaq0f0uaFpN9U0RGQbnKiMw==} + hasBin: true + + expo-modules-core@1.12.11: + resolution: {integrity: sha512-CF5G6hZo/6uIUz6tj4dNRlvE5L4lakYukXPqz5ZHQ+6fLk1NQVZbRdpHjMkxO/QSBQcKUzG/ngeytpoJus7poQ==} + + expo-splash-screen@0.27.4: + resolution: {integrity: sha512-JwepK1FjbwiOK2nwIFanfzj9s7UXYnpTwLX8A9v7Ec3K4V28yu8HooSc9X60cftBw9UZrs8Gwj4PgTpQabBS9A==} + peerDependencies: + expo: '*' + + expo@51.0.8: + resolution: {integrity: sha512-bdTOiMb1f3PChtuqEZ9czUm2gMTmS0r1+H+Pkm2O3PsuLnOgxfIBzL6S37+J4cUocLBaENrmx9SOGKpzhBqXpg==} + hasBin: true + express@4.19.2: resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} engines: {node: '>= 0.10.0'} @@ -7878,6 +8715,10 @@ packages: resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==} engines: {node: '>=6'} + fast-xml-parser@4.4.0: + resolution: {integrity: sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==} + hasBin: true + fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -7889,6 +8730,18 @@ packages: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fbemitter@3.0.0: + resolution: {integrity: sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==} + + fbjs-css-vars@1.0.2: + resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} + + fbjs@3.0.5: + resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} + fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -7896,6 +8749,9 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} + fetch-retry@4.1.1: + resolution: {integrity: sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==} + fetch-retry@5.0.6: resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} @@ -7938,6 +8794,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + finalhandler@1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} @@ -7972,6 +8832,9 @@ packages: find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + find-yarn-workspace-root@2.0.0: + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} + firefox-profile@4.3.2: resolution: {integrity: sha512-/C+Eqa0YgIsQT2p66p7Ygzqe7NlE/GNTbhw2SBCm5V3OsWDPITNdTPEcH2Q2fe7eMpYYNPKdUcuVioZBZiR6kA==} hasBin: true @@ -7991,6 +8854,13 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flow-enums-runtime@0.0.6: + resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} + + flow-parser@0.206.0: + resolution: {integrity: sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==} + engines: {node: '>=0.4.0'} + flow-parser@0.225.1: resolution: {integrity: sha512-50fjR6zbLQcpq5IFNkheUSY/AFPxVeeLiBM5B3NQBSKId2G0cUuExOlDDOguxc49dl9lnh8hI1xcYlPJWNp4KQ==} engines: {node: '>=0.4.0'} @@ -8004,6 +8874,9 @@ packages: debug: optional: true + fontfaceobserver@2.3.0: + resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} + for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -8047,6 +8920,10 @@ packages: resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} engines: {node: '>= 0.12'} + form-data@3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -8067,6 +8944,10 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + freeport-async@2.0.0: + resolution: {integrity: sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==} + engines: {node: '>=8'} + fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -8097,6 +8978,10 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} + fs-extra@9.0.0: + resolution: {integrity: sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==} + engines: {node: '>=10'} + fs-extra@9.0.1: resolution: {integrity: sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==} engines: {node: '>=10'} @@ -8109,6 +8994,10 @@ packages: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs-monkey@1.0.5: resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} @@ -8184,10 +9073,18 @@ packages: get-params@0.1.2: resolution: {integrity: sha512-41eOxtlGgHQRbFyA8KTH+w+32Em3cRdfBud7j67ulzmIfmaHX9doq47s0fa4P5o9H64BZX9nrYI6sJvk46Op+Q==} + get-port@3.2.0: + resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} + engines: {node: '>=4'} + get-port@7.0.0: resolution: {integrity: sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==} engines: {node: '>=16'} + get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -8211,6 +9108,10 @@ packages: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} + getenv@1.0.0: + resolution: {integrity: sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==} + engines: {node: '>=6'} + getopts@2.3.0: resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} @@ -8247,6 +9148,11 @@ packages: glob@6.0.4: resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -8322,6 +9228,16 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql-tag@2.12.6: + resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} + engines: {node: '>=10'} + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + + graphql@15.8.0: + resolution: {integrity: sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==} + engines: {node: '>= 10.x'} + graphql@16.8.1: resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -8431,6 +9347,34 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + hermes-estree@0.15.0: + resolution: {integrity: sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==} + + hermes-estree@0.18.2: + resolution: {integrity: sha512-KoLsoWXJ5o81nit1wSyEZnWUGy9cBna9iYMZBR7skKh7okYAYKqQ9/OczwpMHn/cH0hKDyblulGsJ7FknlfVxQ==} + + hermes-estree@0.19.1: + resolution: {integrity: sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==} + + hermes-estree@0.20.1: + resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==} + + hermes-parser@0.15.0: + resolution: {integrity: sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==} + + hermes-parser@0.18.2: + resolution: {integrity: sha512-1eQfvib+VPpgBZ2zYKQhpuOjw1tH+Emuib6QmjkJWJMhyjM8xnXMvA+76o9LhF0zOAJDZgPfQhg43cyXEyl5Ew==} + + hermes-parser@0.19.1: + resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==} + + hermes-parser@0.20.1: + resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==} + + hermes-profile-transformer@0.0.6: + resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==} + engines: {node: '>=8'} + hex-rgba@1.0.2: resolution: {integrity: sha512-MKla68wFGv+i7zU3Q4giWN74f+zWdkuf2Tk21fISV7aw55r8dH/noBbH5JsVlM4Z2WRTYCEmSxsoZ1QR/o68jg==} @@ -8446,6 +9390,10 @@ packages: hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + hosted-git-info@3.0.8: + resolution: {integrity: sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==} + engines: {node: '>=10'} + hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} @@ -8618,6 +9566,10 @@ packages: immutable@4.3.6: resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} + import-fresh@2.0.0: + resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} + engines: {node: '>=4'} + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -8675,9 +9627,9 @@ packages: inline-style-parser@0.2.2: resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} - internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} + internal-ip@4.3.0: + resolution: {integrity: sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==} + engines: {node: '>=6'} internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} @@ -8702,6 +9654,10 @@ packages: resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} engines: {node: '>=8'} + ip-regex@2.1.0: + resolution: {integrity: sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==} + engines: {node: '>=4'} + ip@2.0.1: resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} @@ -8737,9 +9693,6 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -8765,6 +9718,9 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -8793,6 +9749,10 @@ packages: is-deflate@1.0.0: resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} + is-directory@0.3.1: + resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} + engines: {node: '>=0.10.0'} + is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -8810,6 +9770,10 @@ packages: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} + is-extglob@1.0.0: + resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -8817,6 +9781,10 @@ packages: is-finalizationregistry@1.0.2: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -8825,6 +9793,10 @@ packages: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} + is-glob@2.0.1: + resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} + engines: {node: '>=0.10.0'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -8860,12 +9832,13 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} + is-invalid-path@0.1.0: + resolution: {integrity: sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==} + engines: {node: '>=0.10.0'} + is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -8955,20 +9928,18 @@ packages: resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} engines: {node: '>=6'} - is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} + is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -9007,8 +9978,9 @@ packages: is-utf8@0.2.1: resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + is-valid-path@0.1.1: + resolution: {integrity: sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==} + engines: {node: '>=0.10.0'} is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} @@ -9017,9 +9989,6 @@ packages: is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} - is-weakset@2.0.3: resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} engines: {node: '>= 0.4'} @@ -9028,6 +9997,10 @@ packages: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} + is-wsl@1.1.0: + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} + engines: {node: '>=4'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -9103,10 +10076,41 @@ packages: jed@1.1.1: resolution: {integrity: sha512-z35ZSEcXHxLW4yumw0dF6L464NT36vmx3wxJw8MDpraBcWuNVgUPZgPJKcu1HekNgwlMFNqol7i/IpSbjhqwqA==} + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jimp-compact@0.16.1: + resolution: {integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==} + jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true @@ -9118,6 +10122,12 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + joi@17.13.1: + resolution: {integrity: sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==} + + join-component@1.1.0: + resolution: {integrity: sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==} + jose@4.13.1: resolution: {integrity: sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==} @@ -9135,6 +10145,10 @@ packages: react: optional: true + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-cookie@3.0.1: resolution: {integrity: sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==} engines: {node: '>=12'} @@ -9162,6 +10176,18 @@ packages: jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + jsc-android@250231.0.0: + resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==} + + jsc-safe-url@0.2.4: + resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} + + jscodeshift@0.14.0: + resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==} + hasBin: true + peerDependencies: + '@babel/preset-env': ^7.1.6 + jscodeshift@0.15.1: resolution: {integrity: sha512-hIJfxUy8Rt4HkJn/zZPU9ChKfKZM1342waJ1QC2e2YsPcWhM+3BJ4dcfQCzArTrk1jJeNLB341H+qOcEHRxJZg==} hasBin: true @@ -9195,6 +10221,9 @@ packages: json-merge-patch@1.0.2: resolution: {integrity: sha512-M6Vp2GN9L7cfuMXiWOmHj9bEFbeC250iVtcKQbqVgEsDVYnIsrNsbU+h/Y/PkbBQCtEa4Bez+Ebv0zfbC8ObLg==} + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -9205,6 +10234,10 @@ packages: json-schema-compare@0.2.2: resolution: {integrity: sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==} + json-schema-deref-sync@0.13.0: + resolution: {integrity: sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==} + engines: {node: '>=6.0.0'} + json-schema-merge-allof@0.6.0: resolution: {integrity: sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ==} @@ -9369,6 +10402,12 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + lightningcss-darwin-arm64@1.19.0: + resolution: {integrity: sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + lightningcss-darwin-arm64@1.23.0: resolution: {integrity: sha512-kl4Pk3Q2lnE6AJ7Qaij47KNEfY2/UXRZBT/zqGA24B8qwkgllr/j7rclKOf1axcslNXvvUdztjo4Xqh39Yq1aA==} engines: {node: '>= 12.0.0'} @@ -9381,6 +10420,12 @@ packages: cpu: [arm64] os: [darwin] + lightningcss-darwin-x64@1.19.0: + resolution: {integrity: sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + lightningcss-darwin-x64@1.23.0: resolution: {integrity: sha512-KeRFCNoYfDdcolcFXvokVw+PXCapd2yHS1Diko1z1BhRz/nQuD5XyZmxjWdhmhN/zj5sH8YvWsp0/lPLVzqKpg==} engines: {node: '>= 12.0.0'} @@ -9405,6 +10450,12 @@ packages: cpu: [x64] os: [freebsd] + lightningcss-linux-arm-gnueabihf@1.19.0: + resolution: {integrity: sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + lightningcss-linux-arm-gnueabihf@1.23.0: resolution: {integrity: sha512-fBamf/bULvmWft9uuX+bZske236pUZEoUlaHNBjnueaCTJ/xd8eXgb0cEc7S5o0Nn6kxlauMBnqJpF70Bgq3zg==} engines: {node: '>= 12.0.0'} @@ -9417,6 +10468,12 @@ packages: cpu: [arm] os: [linux] + lightningcss-linux-arm64-gnu@1.19.0: + resolution: {integrity: sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + lightningcss-linux-arm64-gnu@1.23.0: resolution: {integrity: sha512-RS7sY77yVLOmZD6xW2uEHByYHhQi5JYWmgVumYY85BfNoVI3DupXSlzbw+b45A9NnVKq45+oXkiN6ouMMtTwfg==} engines: {node: '>= 12.0.0'} @@ -9429,6 +10486,12 @@ packages: cpu: [arm64] os: [linux] + lightningcss-linux-arm64-musl@1.19.0: + resolution: {integrity: sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + lightningcss-linux-arm64-musl@1.23.0: resolution: {integrity: sha512-cU00LGb6GUXCwof6ACgSMKo3q7XYbsyTj0WsKHLi1nw7pV0NCq8nFTn6ZRBYLoKiV8t+jWl0Hv8KkgymmK5L5g==} engines: {node: '>= 12.0.0'} @@ -9441,6 +10504,12 @@ packages: cpu: [arm64] os: [linux] + lightningcss-linux-x64-gnu@1.19.0: + resolution: {integrity: sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + lightningcss-linux-x64-gnu@1.23.0: resolution: {integrity: sha512-q4jdx5+5NfB0/qMbXbOmuC6oo7caPnFghJbIAV90cXZqgV8Am3miZhC4p+sQVdacqxfd+3nrle4C8icR3p1AYw==} engines: {node: '>= 12.0.0'} @@ -9453,6 +10522,12 @@ packages: cpu: [x64] os: [linux] + lightningcss-linux-x64-musl@1.19.0: + resolution: {integrity: sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + lightningcss-linux-x64-musl@1.23.0: resolution: {integrity: sha512-G9Ri3qpmF4qef2CV/80dADHKXRAQeQXpQTLx7AiQrBYQHqBjB75oxqj06FCIe5g4hNCqLPnM9fsO4CyiT1sFSQ==} engines: {node: '>= 12.0.0'} @@ -9465,6 +10540,12 @@ packages: cpu: [x64] os: [linux] + lightningcss-win32-x64-msvc@1.19.0: + resolution: {integrity: sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + lightningcss-win32-x64-msvc@1.23.0: resolution: {integrity: sha512-1rcBDJLU+obPPJM6qR5fgBUiCdZwZLafZM5f9kwjFLkb/UBNIzmae39uCSmh71nzPCTXZqHbvwu23OWnWEz+eg==} engines: {node: '>= 12.0.0'} @@ -9477,6 +10558,10 @@ packages: cpu: [x64] os: [win32] + lightningcss@1.19.0: + resolution: {integrity: sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==} + engines: {node: '>= 12.0.0'} + lightningcss@1.23.0: resolution: {integrity: sha512-SEArWKMHhqn/0QzOtclIwH5pXIYQOUEkF8DgICd/105O+GCgd7jxjNod/QPnBCSWvpRHQBGVz5fQ9uScby03zA==} engines: {node: '>= 12.0.0'} @@ -9488,6 +10573,10 @@ packages: lil-fp@1.4.5: resolution: {integrity: sha512-RrMQ2dB7SDXriFPZMMHEmroaSP6lFw3QEV7FOfSkf19kvJnDzHqKMc2P9HOf5uE8fOp5YxodSrq7XxWjdeC2sw==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -9504,6 +10593,10 @@ packages: load-plugin@6.0.2: resolution: {integrity: sha512-3KRkTvCOsyNrx4zvBl/+ZMqPdVyp26TIf6xkmfEGuGwCfNQ/HzhktwbJCxd1KJpzPbK42t/WVOL3cX+TDaMRuQ==} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + load-yaml-file@0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} @@ -9591,6 +10684,9 @@ packages: lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -9600,6 +10696,10 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + log-symbols@2.2.0: + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} + engines: {node: '>=4'} + log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} @@ -9608,6 +10708,10 @@ packages: resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} engines: {node: '>=12'} + logkitty@0.7.1: + resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} + hasBin: true + loglevel@1.8.1: resolution: {integrity: sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==} engines: {node: '>= 0.6.0'} @@ -9698,6 +10802,9 @@ packages: resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} engines: {node: '>= 10'} + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + map-age-cleaner@0.1.3: resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} engines: {node: '>=6'} @@ -9739,9 +10846,23 @@ packages: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} + md5-file@3.2.3: + resolution: {integrity: sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==} + engines: {node: '>=0.10'} + hasBin: true + md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + md5@2.2.1: + resolution: {integrity: sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==} + + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + + md5hex@1.0.0: + resolution: {integrity: sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==} + mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} @@ -9809,6 +10930,9 @@ packages: engines: {node: '>= 4.0.0'} deprecated: this will be v4 + memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + memoize-one@6.0.0: resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} @@ -9819,6 +10943,9 @@ packages: memoizerific@1.11.3: resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} + memory-cache@0.2.0: + resolution: {integrity: sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==} + meow@11.0.0: resolution: {integrity: sha512-Cl0yeeIrko6d94KpUo1M+0X1sB14ikoaqlIGuTH1fW4I+E3+YljL54/hb/BWmVfrV9tTV9zU04+xjw08Fh2WkA==} engines: {node: '>=14.16'} @@ -9841,50 +10968,166 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micro-packed@0.3.2: - resolution: {integrity: sha512-D1Bq0/lVOzdxhnX5vylCxZpdw5LylH7Vd81py0DfRsKUP36XYpwvy8ZIsECVo3UfnoROn8pdKqkOzL7Cd82sGA==} + metro-babel-transformer@0.80.5: + resolution: {integrity: sha512-sxH6hcWCorhTbk4kaShCWsadzu99WBL4Nvq4m/sDTbp32//iGuxtAnUK+ZV+6IEygr2u9Z0/4XoZ8Sbcl71MpA==} + engines: {node: '>=18'} - micro-packed@0.6.3: - resolution: {integrity: sha512-VmVkyc7lIzAq/XCPFuLc/CwQ7Ehs5XDK3IwqsZHiBIDttAI9Gs7go6Lv4lNRuAIKrGKcRTtthFKUNyHS0S4wJQ==} + metro-babel-transformer@0.80.9: + resolution: {integrity: sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ==} + engines: {node: '>=18'} - microdiff@1.3.2: - resolution: {integrity: sha512-pKy60S2febliZIbwdfEQKTtL5bLNxOyiRRmD400gueYl9XcHyNGxzHSlJWn9IMHwYXT0yohPYL08+bGozVk8cQ==} + metro-cache-key@0.80.5: + resolution: {integrity: sha512-fr3QLZUarsB3tRbVcmr34kCBsTHk0Sh9JXGvBY/w3b2lbre+Lq5gtgLyFElHPecGF7o4z1eK9r3ubxtScHWcbA==} + engines: {node: '>=18'} - microdiff@1.4.0: - resolution: {integrity: sha512-OBKBOa1VBznvLPb/3ljeJaENVe0fO0lnWl77lR4vhPlQD71UpjEoRV5P0KdQkcjbFlBu1Oy2mEUBMU3wxcBAGg==} + metro-cache-key@0.80.9: + resolution: {integrity: sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg==} + engines: {node: '>=18'} - micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + metro-cache@0.80.5: + resolution: {integrity: sha512-2u+dQ4PZwmC7eZo9uMBNhQQMig9f+w4QWBZwXCdVy/RYOHM0eObgGdMEOwODo73uxie82T9lWzxr3aZOZ+Nqtw==} + engines: {node: '>=18'} - micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + metro-cache@0.80.9: + resolution: {integrity: sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w==} + engines: {node: '>=18'} - micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + metro-config@0.80.5: + resolution: {integrity: sha512-elqo/lwvF+VjZ1OPyvmW/9hSiGlmcqu+rQvDKw5F5WMX48ZC+ySTD1WcaD7e97pkgAlJHVYqZ98FCjRAYOAFRQ==} + engines: {node: '>=18'} - micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + metro-config@0.80.9: + resolution: {integrity: sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg==} + engines: {node: '>=18'} - micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + metro-core@0.80.5: + resolution: {integrity: sha512-vkLuaBhnZxTVpaZO8ZJVEHzjaqSXpOdpAiztSZ+NDaYM6jEFgle3/XIbLW91jTSf2+T8Pj5yB1G7KuOX+BcVwg==} + engines: {node: '>=18'} - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + metro-core@0.80.9: + resolution: {integrity: sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg==} + engines: {node: '>=18'} - micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + metro-file-map@0.80.5: + resolution: {integrity: sha512-bKCvJ05drjq6QhQxnDUt3I8x7bTcHo3IIKVobEr14BK++nmxFGn/BmFLRzVBlghM6an3gqwpNEYxS5qNc+VKcg==} + engines: {node: '>=18'} - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + metro-file-map@0.80.9: + resolution: {integrity: sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ==} + engines: {node: '>=18'} - micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + metro-minify-terser@0.80.5: + resolution: {integrity: sha512-S7oZLLcab6YXUT6jYFX/ZDMN7Fq6xBGGAG8liMFU1UljX6cTcEC2u+UIafYgCLrdVexp/+ClxrIetVPZ5LtL/g==} + engines: {node: '>=18'} - micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + metro-minify-terser@0.80.9: + resolution: {integrity: sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A==} + engines: {node: '>=18'} - micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + metro-resolver@0.80.5: + resolution: {integrity: sha512-haJ/Hveio3zv/Fr4eXVdKzjUeHHDogYok7OpRqPSXGhTXisNXB+sLN7CpcUrCddFRUDLnVaqQOYwhYsFndgUwA==} + engines: {node: '>=18'} + + metro-resolver@0.80.9: + resolution: {integrity: sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w==} + engines: {node: '>=18'} + + metro-runtime@0.80.5: + resolution: {integrity: sha512-L0syTWJUdWzfUmKgkScr6fSBVTh6QDr8eKEkRtn40OBd8LPagrJGySBboWSgbyn9eIb4ayW3Y347HxgXBSAjmg==} + engines: {node: '>=18'} + + metro-runtime@0.80.9: + resolution: {integrity: sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg==} + engines: {node: '>=18'} + + metro-source-map@0.80.5: + resolution: {integrity: sha512-DwSF4l03mKPNqCtyQ6K23I43qzU1BViAXnuH81eYWdHglP+sDlPpY+/7rUahXEo6qXEHXfAJgVoo1sirbXbmsQ==} + engines: {node: '>=18'} + + metro-source-map@0.80.9: + resolution: {integrity: sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw==} + engines: {node: '>=18'} + + metro-symbolicate@0.80.5: + resolution: {integrity: sha512-IsM4mTYvmo9JvIqwEkCZ5+YeDVPST78Q17ZgljfLdHLSpIivOHp9oVoiwQ/YGbLx0xRHRIS/tKiXueWBnj3UWA==} + engines: {node: '>=18'} + hasBin: true + + metro-symbolicate@0.80.9: + resolution: {integrity: sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA==} + engines: {node: '>=18'} + hasBin: true + + metro-transform-plugins@0.80.5: + resolution: {integrity: sha512-7IdlTqK/k5+qE3RvIU5QdCJUPk4tHWEqgVuYZu8exeW+s6qOJ66hGIJjXY/P7ccucqF+D4nsbAAW5unkoUdS6g==} + engines: {node: '>=18'} + + metro-transform-plugins@0.80.9: + resolution: {integrity: sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg==} + engines: {node: '>=18'} + + metro-transform-worker@0.80.5: + resolution: {integrity: sha512-Q1oM7hfP+RBgAtzRFBDjPhArELUJF8iRCZ8OidqCpYzQJVGuJZ7InSnIf3hn1JyqiUQwv2f1LXBO78i2rAjzyA==} + engines: {node: '>=18'} + + metro-transform-worker@0.80.9: + resolution: {integrity: sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ==} + engines: {node: '>=18'} + + metro@0.80.5: + resolution: {integrity: sha512-OE/CGbOgbi8BlTN1QqJgKOBaC27dS0JBQw473JcivrpgVnqIsluROA7AavEaTVUrB9wPUZvoNVDROn5uiM2jfw==} + engines: {node: '>=18'} + hasBin: true + + metro@0.80.9: + resolution: {integrity: sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg==} + engines: {node: '>=18'} + hasBin: true + + micro-packed@0.3.2: + resolution: {integrity: sha512-D1Bq0/lVOzdxhnX5vylCxZpdw5LylH7Vd81py0DfRsKUP36XYpwvy8ZIsECVo3UfnoROn8pdKqkOzL7Cd82sGA==} + + micro-packed@0.6.3: + resolution: {integrity: sha512-VmVkyc7lIzAq/XCPFuLc/CwQ7Ehs5XDK3IwqsZHiBIDttAI9Gs7go6Lv4lNRuAIKrGKcRTtthFKUNyHS0S4wJQ==} + + microdiff@1.3.2: + resolution: {integrity: sha512-pKy60S2febliZIbwdfEQKTtL5bLNxOyiRRmD400gueYl9XcHyNGxzHSlJWn9IMHwYXT0yohPYL08+bGozVk8cQ==} + + microdiff@1.4.0: + resolution: {integrity: sha512-OBKBOa1VBznvLPb/3ljeJaENVe0fO0lnWl77lR4vhPlQD71UpjEoRV5P0KdQkcjbFlBu1Oy2mEUBMU3wxcBAGg==} + + micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + + micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + + micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + + micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + + micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + + micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} micromark-extension-mdxjs-esm@3.0.0: resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} @@ -9982,6 +11225,15 @@ packages: engines: {node: '>=4'} hasBin: true + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -10050,6 +11302,10 @@ packages: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} engines: {node: '>= 8'} + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + minipass-fetch@1.4.1: resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} engines: {node: '>=8'} @@ -10108,9 +11364,6 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} - mlly@1.6.1: resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} @@ -10178,12 +11431,22 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + nested-error-stacks@2.0.1: + resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==} + new-date@1.0.3: resolution: {integrity: sha512-0fsVvQPbo2I18DT2zVHpezmeeNYV2JaJSrseiHLc17GNOxJzUdx5mvSigPu8LtIfZSij5i1wXnXFspEs2CD6hA==} + nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + nocache@3.0.4: + resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} + engines: {node: '>=12.0.0'} + node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} @@ -10236,12 +11499,19 @@ packages: engines: {node: '>= 10.12.0'} hasBin: true + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + node-notifier@10.0.1: resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==} node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-stream-zip@1.15.0: + resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} + engines: {node: '>=0.12.0'} + nopt@5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} engines: {node: '>=6'} @@ -10283,6 +11553,13 @@ packages: resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + npm-package-arg@7.0.0: + resolution: {integrity: sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==} + + npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -10301,6 +11578,9 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nullthrows@1.1.1: + resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} + nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} @@ -10312,6 +11592,14 @@ packages: oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + ob1@0.80.5: + resolution: {integrity: sha512-zYDMnnNrFi/1Tqh0vo3PE4p97Tpl9/4MP2k2ECvkbLOZzQuAYZJLTUYVLZb7hJhbhjT+JJxAwBGS8iu5hCSd1w==} + engines: {node: '>=18'} + + ob1@0.80.9: + resolution: {integrity: sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA==} + engines: {node: '>=18'} + obj-case@0.2.1: resolution: {integrity: sha512-PquYBBTy+Y6Ob/O2574XHhDtHJlV1cJHMCgW+rDRc9J5hhmRelJB3k5dTK/3cVmFVtzvAKuENeuLpoyTzMzkOg==} @@ -10393,6 +11681,10 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} + onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -10405,6 +11697,14 @@ packages: resolution: {integrity: sha512-dtbI5oW7987hwC9qjJTyABldTaa19SuyJse1QboWv3b0qCcrrLNVDqBx1XgELAjh9QTVQaP/C5b1nhQebd1H2A==} engines: {node: '>=18'} + open@6.4.0: + resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} + engines: {node: '>=8'} + + open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} + open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -10417,6 +11717,10 @@ packages: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} + ora@3.4.0: + resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} + engines: {node: '>=6'} + ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} @@ -10425,6 +11729,10 @@ packages: resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + os-locale@5.0.0: resolution: {integrity: sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==} engines: {node: '>=10'} @@ -10433,6 +11741,14 @@ packages: resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==} engines: {node: '>= 0.4.0'} + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + osenv@0.1.5: + resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} + deprecated: This package is no longer supported. + outdent@0.8.0: resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} @@ -10448,6 +11764,10 @@ packages: resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} engines: {node: '>=4'} + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + p-is-promise@2.1.0: resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} engines: {node: '>=6'} @@ -10534,6 +11854,10 @@ packages: parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -10546,6 +11870,10 @@ packages: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} engines: {node: '>=16'} + parse-png@2.1.0: + resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==} + engines: {node: '>=10'} + parse5-htmlparser2-tree-adapter@7.0.0: resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} @@ -10565,6 +11893,9 @@ packages: pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + password-prompt@1.1.3: + resolution: {integrity: sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==} + path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -10587,6 +11918,10 @@ packages: path-is-inside@1.0.2: resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -10657,6 +11992,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + picomatch@4.0.2: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} @@ -10731,10 +12070,18 @@ packages: engines: {node: '>=16'} hasBin: true + plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} + pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + polished@4.3.1: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} @@ -10862,6 +12209,18 @@ packages: peerDependencies: postcss: ^8.4 + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + postcss-loader@8.1.1: resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} engines: {node: '>= 18.12.0'} @@ -11053,9 +12412,17 @@ packages: engines: {node: '>=14'} hasBin: true + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + pretty-format@26.6.2: + resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} + engines: {node: '>= 10'} + pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -11126,6 +12493,12 @@ packages: resolution: {integrity: sha512-NV8aTmpwrZv+Iys54sSFOBx3tuVaOBvvrft5PNppnxy9xpU/akHbaWIril22AB22zaPgrgwKdD0KsrM0ptUtpg==} engines: {node: '>=6'} + promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + + promise@8.3.0: + resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -11178,6 +12551,10 @@ packages: qr.js@0.0.0: resolution: {integrity: sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ==} + qrcode-terminal@0.11.0: + resolution: {integrity: sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==} + hasBin: true + qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -11277,6 +12654,9 @@ packages: typescript: optional: true + react-devtools-core@5.2.0: + resolution: {integrity: sha512-vZK+/gvxxsieAoAyYaiRIVFxlajb7KXhgBDV7OsoMzaAE+IqGpoxusBjIgq5ibqA2IloKu0p9n7tE68z1xs18A==} + react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -11291,6 +12671,11 @@ packages: peerDependencies: react: '*' + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -11351,6 +12736,17 @@ packages: peerDependencies: react: '>=15.0.0' + react-native@0.74.1: + resolution: {integrity: sha512-0H2XpmghwOtfPpM2LKqHIN7gxy+7G/r1hwJHKLV6uoyXGC/gCojRtoo5NqyKrWpFC8cqyT6wTYCLuG7CxEKilg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@types/react': ^18.2.6 + react: 18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-qr-code@2.0.12: resolution: {integrity: sha512-k+pzP5CKLEGBRwZsDPp98/CAJeXlsYRHM2iZn1Sd5Th/HnKhIZCSg27PXO58zk8z02RaEryg+60xa4vyywMJwg==} peerDependencies: @@ -11439,6 +12835,11 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-shallow-renderer@16.15.0: + resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-style-singleton@2.2.1: resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} @@ -11462,6 +12863,10 @@ packages: react: '>=16 || >=17 || >= 18' react-dom: '>=16 || >=17 || >= 18' + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -11486,6 +12891,10 @@ packages: resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} engines: {node: '>=12.20'} + read-yaml-file@2.1.0: + resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} + engines: {node: '>=10.13'} + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -11505,10 +12914,17 @@ packages: resolution: {integrity: sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==} engines: {node: '>=6'} + readline@1.3.0: + resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} + real-require@0.2.0: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} + recast@0.21.5: + resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} + engines: {node: '>= 4'} + recast@0.23.6: resolution: {integrity: sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==} engines: {node: '>= 4'} @@ -11584,10 +13000,6 @@ packages: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true - regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -11641,6 +13053,9 @@ packages: remove-accents@0.4.2: resolution: {integrity: sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==} + remove-trailing-slash@0.1.1: + resolution: {integrity: sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==} + renderkid@3.0.0: resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} @@ -11657,6 +13072,13 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + requireg@0.2.2: + resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==} + engines: {node: '>= 4.0.0'} + requireindex@1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} engines: {node: '>=0.10.5'} @@ -11680,6 +13102,10 @@ packages: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} + resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -11691,10 +13117,17 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true + resolve@1.7.1: + resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} + resolve@2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true @@ -11706,6 +13139,10 @@ packages: resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} engines: {node: '>=14.16'} + restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} + restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -11728,6 +13165,7 @@ packages: rimraf@2.4.5: resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@2.6.3: @@ -11828,6 +13266,9 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.24.0-canary-efb381bbf-20230505: + resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==} + schema-inspector@2.0.2: resolution: {integrity: sha512-phq0/I55VGzl4kmq3Tp1jlY75Xtc1o7wfGmOEFTgGyucI6zIdEsiM7MJu9jjQf2SfMreqSbTi/ktUsEMs6pV7A==} @@ -11888,6 +13329,10 @@ packages: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} + serialize-error@2.1.0: + resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} + engines: {node: '>=0.10.0'} + serialize-error@7.0.1: resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} engines: {node: '>=10'} @@ -11910,10 +13355,6 @@ packages: resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} engines: {node: '>= 0.4'} - set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} - set-function-name@2.0.2: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} @@ -11941,10 +13382,18 @@ packages: shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} @@ -11986,6 +13435,9 @@ packages: simple-element-resize-detector@1.3.0: resolution: {integrity: sha512-cCFTDpFMgz/OikrV9R++wOQgLbFwqrneci8FmAOH79xrfn1sQVZg9LJV2RvproMgdN2LnfZXZPrM+Z12GXN7jA==} + simple-plist@1.3.1: + resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -12004,9 +13456,17 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} + slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} + sliced@1.0.1: resolution: {integrity: sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==} + slugify@1.6.6: + resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} + engines: {node: '>=8.0.0'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -12064,6 +13524,10 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -12119,16 +13583,28 @@ packages: engines: {node: '>=0.10.0'} hasBin: true + ssri@10.0.6: + resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ssri@8.0.1: resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} engines: {node: '>= 8'} + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + stacktrace-parser@0.1.10: + resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} + engines: {node: '>=6'} + statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -12158,6 +13634,10 @@ packages: stream-browserify@3.0.0: resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + stream-buffers@2.2.0: + resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} + engines: {node: '>= 0.10.0'} + stream-combiner@0.2.2: resolution: {integrity: sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==} @@ -12213,6 +13693,10 @@ packages: stringify-entities@4.0.3: resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -12233,10 +13717,18 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + strip-bom@5.0.0: resolution: {integrity: sha512-p+byADHF7SzEcVnLvc/r3uognM1hUhObuHXxJcgLCfD194XAkaLbjq3Wzb0N5G2tgIjH0dgT708Z51QxMeu60A==} engines: {node: '>=12'} + strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -12268,6 +13760,12 @@ packages: strip-literal@2.1.0: resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + + structured-headers@0.4.1: + resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==} + style-loader@3.3.4: resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} @@ -12291,6 +13789,25 @@ packages: stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + sudo-prompt@8.2.5: + resolution: {integrity: sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==} + + sudo-prompt@9.1.1: + resolution: {integrity: sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==} + + sudo-prompt@9.2.1: + resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} + sumchecker@3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} @@ -12315,6 +13832,10 @@ packages: resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} engines: {node: '>=12'} + supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -12334,6 +13855,9 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synchronous-promise@2.0.17: + resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} + synckit@0.9.0: resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -12367,6 +13891,10 @@ packages: telejson@7.2.0: resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} + temp-dir@1.0.0: + resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} + engines: {node: '>=4'} + temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} @@ -12375,10 +13903,22 @@ packages: resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} engines: {node: '>=6.0.0'} + tempy@0.3.0: + resolution: {integrity: sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==} + engines: {node: '>=8'} + + tempy@0.7.1: + resolution: {integrity: sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==} + engines: {node: '>=10'} + tempy@1.0.1: resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} engines: {node: '>=10'} + terminal-link@2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + terser-webpack-plugin@5.3.10: resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} @@ -12422,6 +13962,9 @@ packages: thread-stream@2.4.1: resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==} + throat@5.0.0: + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} + through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} @@ -12454,18 +13997,21 @@ packages: resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} engines: {node: '>=14.0.0'} - tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} - engines: {node: '>=14.0.0'} - tinyspy@2.2.1: resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + tmp@0.2.1: resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} engines: {node: '>=8.17.0'} + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -12503,10 +14049,17 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tr46@4.1.1: resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} engines: {node: '>=14'} + traverse@0.6.9: + resolution: {integrity: sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==} + engines: {node: '>= 0.4'} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -12553,6 +14106,9 @@ packages: jsdom: optional: true + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-morph@19.0.0: resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} @@ -12622,6 +14178,25 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tsup@8.1.0: + resolution: {integrity: sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -12661,10 +14236,22 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.3.1: + resolution: {integrity: sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==} + engines: {node: '>=6'} + type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} + type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + type-fest@0.8.1: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} @@ -12708,6 +14295,10 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typedarray.prototype.slice@1.0.3: + resolution: {integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==} + engines: {node: '>= 0.4'} + typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} @@ -12724,8 +14315,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + ua-parser-js@1.0.38: + resolution: {integrity: sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==} ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} @@ -12780,9 +14371,21 @@ packages: unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} - unique-slug@2.0.2: + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-string@1.0.0: + resolution: {integrity: sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==} + engines: {node: '>=4'} + unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -12865,6 +14468,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-join@4.0.0: + resolution: {integrity: sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==} + url-join@5.0.0: resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -12941,6 +14547,10 @@ packages: deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true + uuid@7.0.3: + resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==} + hasBin: true + uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -12963,6 +14573,9 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + validate.io-array@1.0.6: resolution: {integrity: sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==} @@ -13069,6 +14682,9 @@ packages: jsdom: optional: true + vlq@1.0.1: + resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} + vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} @@ -13079,6 +14695,9 @@ packages: walk-up-path@3.0.1: resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} @@ -13123,6 +14742,13 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webidl-conversions@5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -13220,6 +14846,10 @@ packages: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} + whatwg-url-without-unicode@8.0.0-3: + resolution: {integrity: sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==} + engines: {node: '>=10'} + whatwg-url@12.0.1: resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} engines: {node: '>=14'} @@ -13227,6 +14857,9 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + when@3.7.7: resolution: {integrity: sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==} @@ -13237,13 +14870,13 @@ packages: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} engines: {node: '>= 0.4'} - which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} - which-collection@1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + which-pm@2.0.0: resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} engines: {node: '>=8.15'} @@ -13290,6 +14923,9 @@ packages: winreg@0.0.12: resolution: {integrity: sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==} + wonka@4.0.15: + resolution: {integrity: sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==} + wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -13324,6 +14960,10 @@ packages: utf-8-validate: optional: true + xcode@3.0.1: + resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} + engines: {node: '>=10.0.0'} + xdg-basedir@5.1.0: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} engines: {node: '>=12'} @@ -13336,10 +14976,22 @@ packages: resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} engines: {node: '>=4.0.0'} + xml2js@0.6.0: + resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} + engines: {node: '>=4.0.0'} + xmlbuilder@11.0.1: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} + xmlbuilder@14.0.0: + resolution: {integrity: sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==} + engines: {node: '>=8.0'} + + xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -13351,6 +15003,9 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -13369,10 +15024,18 @@ packages: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + yargs@17.7.1: resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} engines: {node: '>=12'} @@ -13446,11 +15109,6 @@ snapshots: '@adobe/css-tools@4.3.2': {} - '@ampproject/remapping@2.2.1': - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.25 - '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -13572,6 +15230,10 @@ snapshots: dependencies: default-browser-id: 3.0.0 + '@babel/code-frame@7.10.4': + dependencies: + '@babel/highlight': 7.24.7 + '@babel/code-frame@7.23.5': dependencies: '@babel/highlight': 7.23.4 @@ -13601,26 +15263,6 @@ snapshots: '@babel/compat-data@7.24.6': {} - '@babel/core@7.24.0': - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helpers': 7.24.0 - '@babel/parser': 7.24.0 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0(supports-color@5.5.0) - '@babel/types': 7.24.0 - convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@5.5.0) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@7.24.4': dependencies: '@ampproject/remapping': 2.3.0 @@ -13676,6 +15318,10 @@ snapshots: dependencies: '@babel/types': 7.24.7 + '@babel/helper-annotate-as-pure@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.6': dependencies: '@babel/types': 7.24.7 @@ -13722,6 +15368,21 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.6 semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -13790,6 +15451,13 @@ snapshots: dependencies: '@babel/types': 7.24.7 + '@babel/helper-member-expression-to-functions@7.24.7': + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-imports@7.22.15': dependencies: '@babel/types': 7.24.0 @@ -13798,14 +15466,12 @@ snapshots: dependencies: '@babel/types': 7.24.7 - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0)': + '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4)': dependencies: @@ -13833,10 +15499,16 @@ snapshots: dependencies: '@babel/types': 7.24.7 + '@babel/helper-optimise-call-expression@7.24.7': + dependencies: + '@babel/types': 7.24.7 + '@babel/helper-plugin-utils@7.22.5': {} '@babel/helper-plugin-utils@7.24.6': {} + '@babel/helper-plugin-utils@7.24.7': {} + '@babel/helper-remap-async-to-generator@7.24.6(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -13858,6 +15530,15 @@ snapshots: '@babel/helper-member-expression-to-functions': 7.24.6 '@babel/helper-optimise-call-expression': 7.24.6 + '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.7 + '@babel/helper-optimise-call-expression': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-simple-access@7.22.5': dependencies: '@babel/types': 7.24.7 @@ -13874,6 +15555,13 @@ snapshots: dependencies: '@babel/types': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-split-export-declaration@7.22.6': dependencies: '@babel/types': 7.24.0 @@ -13902,20 +15590,14 @@ snapshots: '@babel/helper-validator-option@7.24.6': {} + '@babel/helper-validator-option@7.24.7': {} + '@babel/helper-wrap-function@7.24.6': dependencies: '@babel/helper-function-name': 7.24.6 '@babel/template': 7.24.6 '@babel/types': 7.24.7 - '@babel/helpers@7.24.0': - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0(supports-color@5.5.0) - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color - '@babel/helpers@7.24.4': dependencies: '@babel/template': 7.24.0 @@ -13993,6 +15675,79 @@ snapshots: '@babel/helper-environment-visitor': 7.24.6 '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-remap-async-to-generator': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-export-default-from@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.24.4) + + '@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + + '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.4)': + dependencies: + '@babel/compat-data': 7.24.6 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.24.6 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) + + '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + + '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -14012,11 +15767,21 @@ snapshots: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -14052,6 +15817,11 @@ snapshots: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -14372,6 +16142,45 @@ snapshots: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + + '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.4) + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-transform-regenerator@7.24.6(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -14383,6 +16192,18 @@ snapshots: '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.6 + '@babel/plugin-transform-runtime@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.4) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.4) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-shorthand-properties@7.24.6(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -14541,6 +16362,18 @@ snapshots: '@babel/types': 7.24.7 esutils: 2.0.3 + '@babel/preset-react@7.24.7(@babel/core@7.24.4)': + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.24.4) + transitivePeerDependencies: + - supports-color + '@babel/preset-typescript@7.23.3(@babel/core@7.24.4)': dependencies: '@babel/core': 7.24.4 @@ -14636,6 +16469,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.24.7': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + debug: 4.3.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.17.0': dependencies: '@babel/helper-validator-identifier': 7.24.7 @@ -15119,132 +16967,198 @@ snapshots: '@esbuild/aix-ppc64@0.21.4': optional: true + '@esbuild/android-arm64@0.18.20': + optional: true + '@esbuild/android-arm64@0.20.2': optional: true '@esbuild/android-arm64@0.21.4': optional: true + '@esbuild/android-arm@0.18.20': + optional: true + '@esbuild/android-arm@0.20.2': optional: true '@esbuild/android-arm@0.21.4': optional: true + '@esbuild/android-x64@0.18.20': + optional: true + '@esbuild/android-x64@0.20.2': optional: true '@esbuild/android-x64@0.21.4': optional: true + '@esbuild/darwin-arm64@0.18.20': + optional: true + '@esbuild/darwin-arm64@0.20.2': optional: true '@esbuild/darwin-arm64@0.21.4': optional: true + '@esbuild/darwin-x64@0.18.20': + optional: true + '@esbuild/darwin-x64@0.20.2': optional: true '@esbuild/darwin-x64@0.21.4': optional: true + '@esbuild/freebsd-arm64@0.18.20': + optional: true + '@esbuild/freebsd-arm64@0.20.2': optional: true '@esbuild/freebsd-arm64@0.21.4': optional: true + '@esbuild/freebsd-x64@0.18.20': + optional: true + '@esbuild/freebsd-x64@0.20.2': optional: true '@esbuild/freebsd-x64@0.21.4': optional: true + '@esbuild/linux-arm64@0.18.20': + optional: true + '@esbuild/linux-arm64@0.20.2': optional: true '@esbuild/linux-arm64@0.21.4': optional: true + '@esbuild/linux-arm@0.18.20': + optional: true + '@esbuild/linux-arm@0.20.2': optional: true '@esbuild/linux-arm@0.21.4': optional: true + '@esbuild/linux-ia32@0.18.20': + optional: true + '@esbuild/linux-ia32@0.20.2': optional: true '@esbuild/linux-ia32@0.21.4': optional: true + '@esbuild/linux-loong64@0.18.20': + optional: true + '@esbuild/linux-loong64@0.20.2': optional: true '@esbuild/linux-loong64@0.21.4': optional: true + '@esbuild/linux-mips64el@0.18.20': + optional: true + '@esbuild/linux-mips64el@0.20.2': optional: true '@esbuild/linux-mips64el@0.21.4': optional: true + '@esbuild/linux-ppc64@0.18.20': + optional: true + '@esbuild/linux-ppc64@0.20.2': optional: true '@esbuild/linux-ppc64@0.21.4': optional: true + '@esbuild/linux-riscv64@0.18.20': + optional: true + '@esbuild/linux-riscv64@0.20.2': optional: true '@esbuild/linux-riscv64@0.21.4': optional: true + '@esbuild/linux-s390x@0.18.20': + optional: true + '@esbuild/linux-s390x@0.20.2': optional: true '@esbuild/linux-s390x@0.21.4': optional: true + '@esbuild/linux-x64@0.18.20': + optional: true + '@esbuild/linux-x64@0.20.2': optional: true '@esbuild/linux-x64@0.21.4': optional: true + '@esbuild/netbsd-x64@0.18.20': + optional: true + '@esbuild/netbsd-x64@0.20.2': optional: true '@esbuild/netbsd-x64@0.21.4': optional: true + '@esbuild/openbsd-x64@0.18.20': + optional: true + '@esbuild/openbsd-x64@0.20.2': optional: true '@esbuild/openbsd-x64@0.21.4': optional: true + '@esbuild/sunos-x64@0.18.20': + optional: true + '@esbuild/sunos-x64@0.20.2': optional: true '@esbuild/sunos-x64@0.21.4': optional: true + '@esbuild/win32-arm64@0.18.20': + optional: true + '@esbuild/win32-arm64@0.20.2': optional: true '@esbuild/win32-arm64@0.21.4': optional: true + '@esbuild/win32-ia32@0.18.20': + optional: true + '@esbuild/win32-ia32@0.20.2': optional: true '@esbuild/win32-ia32@0.21.4': optional: true + '@esbuild/win32-x64@0.18.20': + optional: true + '@esbuild/win32-x64@0.20.2': optional: true @@ -15274,6 +17188,322 @@ snapshots: '@eslint/js@8.56.0': {} + '@expo/bunyan@4.0.0': + dependencies: + uuid: 8.3.2 + optionalDependencies: + mv: 2.1.1 + safe-json-stringify: 1.2.0 + + '@expo/cli@0.18.13(encoding@0.1.13)(expo-modules-autolinking@1.11.1)': + dependencies: + '@babel/runtime': 7.24.4 + '@expo/code-signing-certificates': 0.0.5 + '@expo/config': 9.0.2 + '@expo/config-plugins': 8.0.4 + '@expo/devcert': 1.1.2 + '@expo/env': 0.3.0 + '@expo/image-utils': 0.5.1(encoding@0.1.13) + '@expo/json-file': 8.3.3 + '@expo/metro-config': 0.18.4 + '@expo/osascript': 2.1.3 + '@expo/package-manager': 1.5.2 + '@expo/plist': 0.1.3 + '@expo/prebuild-config': 7.0.4(encoding@0.1.13)(expo-modules-autolinking@1.11.1) + '@expo/rudder-sdk-node': 1.1.1(encoding@0.1.13) + '@expo/spawn-async': 1.7.2 + '@expo/xcpretty': 4.3.1 + '@react-native/dev-middleware': 0.74.83(encoding@0.1.13) + '@urql/core': 2.3.6(graphql@15.8.0) + '@urql/exchange-retry': 0.3.0(graphql@15.8.0) + accepts: 1.3.8 + arg: 5.0.2 + better-opn: 3.0.2 + bplist-parser: 0.3.2 + cacache: 18.0.3 + chalk: 4.1.2 + ci-info: 3.9.0 + connect: 3.7.0 + debug: 4.3.5 + env-editor: 0.4.2 + fast-glob: 3.3.2 + find-yarn-workspace-root: 2.0.0 + form-data: 3.0.1 + freeport-async: 2.0.0 + fs-extra: 8.1.0 + getenv: 1.0.0 + glob: 7.2.3 + graphql: 15.8.0 + graphql-tag: 2.12.6(graphql@15.8.0) + https-proxy-agent: 5.0.1 + internal-ip: 4.3.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + js-yaml: 3.14.1 + json-schema-deref-sync: 0.13.0 + lodash.debounce: 4.0.8 + md5hex: 1.0.0 + minimatch: 3.1.2 + node-fetch: 2.7.0(encoding@0.1.13) + node-forge: 1.3.1 + npm-package-arg: 7.0.0 + open: 8.4.2 + ora: 3.4.0 + picomatch: 3.0.1 + pretty-bytes: 5.6.0 + progress: 2.0.3 + prompts: 2.4.2 + qrcode-terminal: 0.11.0 + require-from-string: 2.0.2 + requireg: 0.2.2 + resolve: 1.22.8 + resolve-from: 5.0.0 + resolve.exports: 2.0.2 + semver: 7.6.2 + send: 0.18.0 + slugify: 1.6.6 + source-map-support: 0.5.21 + stacktrace-parser: 0.1.10 + structured-headers: 0.4.1 + tar: 6.2.0 + temp-dir: 2.0.0 + tempy: 0.7.1 + terminal-link: 2.1.1 + text-table: 0.2.0 + url-join: 4.0.0 + wrap-ansi: 7.0.0 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - encoding + - expo-modules-autolinking + - supports-color + - utf-8-validate + + '@expo/code-signing-certificates@0.0.5': + dependencies: + node-forge: 1.3.1 + nullthrows: 1.1.1 + + '@expo/config-plugins@8.0.4': + dependencies: + '@expo/config-types': 51.0.1 + '@expo/json-file': 8.3.3 + '@expo/plist': 0.1.3 + '@expo/sdk-runtime-versions': 1.0.0 + chalk: 4.1.2 + debug: 4.3.5 + find-up: 5.0.0 + getenv: 1.0.0 + glob: 7.1.6 + resolve-from: 5.0.0 + semver: 7.6.2 + slash: 3.0.0 + slugify: 1.6.6 + xcode: 3.0.1 + xml2js: 0.6.0 + transitivePeerDependencies: + - supports-color + + '@expo/config-plugins@8.0.5': + dependencies: + '@expo/config-types': 51.0.1 + '@expo/json-file': 8.3.3 + '@expo/plist': 0.1.3 + '@expo/sdk-runtime-versions': 1.0.0 + chalk: 4.1.2 + debug: 4.3.5 + find-up: 5.0.0 + getenv: 1.0.0 + glob: 7.1.6 + resolve-from: 5.0.0 + semver: 7.6.2 + slash: 3.0.0 + slugify: 1.6.6 + xcode: 3.0.1 + xml2js: 0.6.0 + transitivePeerDependencies: + - supports-color + + '@expo/config-types@51.0.1': {} + + '@expo/config@9.0.2': + dependencies: + '@babel/code-frame': 7.10.4 + '@expo/config-plugins': 8.0.4 + '@expo/config-types': 51.0.1 + '@expo/json-file': 8.3.3 + getenv: 1.0.0 + glob: 7.1.6 + require-from-string: 2.0.2 + resolve-from: 5.0.0 + semver: 7.6.2 + slugify: 1.6.6 + sucrase: 3.34.0 + transitivePeerDependencies: + - supports-color + + '@expo/devcert@1.1.2': + dependencies: + application-config-path: 0.1.1 + command-exists: 1.2.9 + debug: 3.2.7 + eol: 0.9.1 + get-port: 3.2.0 + glob: 7.2.3 + lodash: 4.17.21 + mkdirp: 0.5.6 + password-prompt: 1.1.3 + rimraf: 2.7.1 + sudo-prompt: 8.2.5 + tmp: 0.0.33 + tslib: 2.6.2 + transitivePeerDependencies: + - supports-color + + '@expo/env@0.3.0': + dependencies: + chalk: 4.1.2 + debug: 4.3.5 + dotenv: 16.4.5 + dotenv-expand: 11.0.6 + getenv: 1.0.0 + transitivePeerDependencies: + - supports-color + + '@expo/image-utils@0.5.1(encoding@0.1.13)': + dependencies: + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + fs-extra: 9.0.0 + getenv: 1.0.0 + jimp-compact: 0.16.1 + node-fetch: 2.7.0(encoding@0.1.13) + parse-png: 2.1.0 + resolve-from: 5.0.0 + semver: 7.6.2 + tempy: 0.3.0 + transitivePeerDependencies: + - encoding + + '@expo/json-file@8.3.3': + dependencies: + '@babel/code-frame': 7.10.4 + json5: 2.2.3 + write-file-atomic: 2.4.3 + + '@expo/metro-config@0.18.4': + dependencies: + '@babel/core': 7.24.4 + '@babel/generator': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + '@expo/config': 9.0.2 + '@expo/env': 0.3.0 + '@expo/json-file': 8.3.3 + '@expo/spawn-async': 1.7.2 + chalk: 4.1.2 + debug: 4.3.5 + find-yarn-workspace-root: 2.0.0 + fs-extra: 9.1.0 + getenv: 1.0.0 + glob: 7.2.3 + jsc-safe-url: 0.2.4 + lightningcss: 1.19.0 + postcss: 8.4.38 + resolve-from: 5.0.0 + transitivePeerDependencies: + - supports-color + + '@expo/osascript@2.1.3': + dependencies: + '@expo/spawn-async': 1.7.2 + exec-async: 2.2.0 + + '@expo/package-manager@1.5.2': + dependencies: + '@expo/json-file': 8.3.3 + '@expo/spawn-async': 1.7.2 + ansi-regex: 5.0.1 + chalk: 4.1.2 + find-up: 5.0.0 + find-yarn-workspace-root: 2.0.0 + js-yaml: 3.14.1 + micromatch: 4.0.5 + npm-package-arg: 7.0.0 + ora: 3.4.0 + split: 1.0.1 + sudo-prompt: 9.1.1 + + '@expo/plist@0.1.3': + dependencies: + '@xmldom/xmldom': 0.7.13 + base64-js: 1.5.1 + xmlbuilder: 14.0.0 + + '@expo/prebuild-config@7.0.3(encoding@0.1.13)(expo-modules-autolinking@1.11.1)': + dependencies: + '@expo/config': 9.0.2 + '@expo/config-plugins': 8.0.5 + '@expo/config-types': 51.0.1 + '@expo/image-utils': 0.5.1(encoding@0.1.13) + '@expo/json-file': 8.3.3 + '@react-native/normalize-colors': 0.74.83 + debug: 4.3.5 + expo-modules-autolinking: 1.11.1 + fs-extra: 9.1.0 + resolve-from: 5.0.0 + semver: 7.6.2 + xml2js: 0.6.0 + transitivePeerDependencies: + - encoding + - supports-color + + '@expo/prebuild-config@7.0.4(encoding@0.1.13)(expo-modules-autolinking@1.11.1)': + dependencies: + '@expo/config': 9.0.2 + '@expo/config-plugins': 8.0.4 + '@expo/config-types': 51.0.1 + '@expo/image-utils': 0.5.1(encoding@0.1.13) + '@expo/json-file': 8.3.3 + '@react-native/normalize-colors': 0.74.83 + debug: 4.3.5 + expo-modules-autolinking: 1.11.1 + fs-extra: 9.1.0 + resolve-from: 5.0.0 + semver: 7.6.2 + xml2js: 0.6.0 + transitivePeerDependencies: + - encoding + - supports-color + + '@expo/rudder-sdk-node@1.1.1(encoding@0.1.13)': + dependencies: + '@expo/bunyan': 4.0.0 + '@segment/loosely-validate-event': 2.0.0 + fetch-retry: 4.1.1 + md5: 2.3.0 + node-fetch: 2.7.0(encoding@0.1.13) + remove-trailing-slash: 0.1.1 + uuid: 8.3.2 + transitivePeerDependencies: + - encoding + + '@expo/sdk-runtime-versions@1.0.0': {} + + '@expo/spawn-async@1.7.2': + dependencies: + cross-spawn: 7.0.3 + + '@expo/vector-icons@14.0.0': {} + + '@expo/xcpretty@4.3.1': + dependencies: + '@babel/code-frame': 7.10.4 + chalk: 4.1.2 + find-up: 5.0.0 + js-yaml: 4.1.0 + '@fal-works/esbuild-plugin-global-externals@2.1.2': {} '@fastify/busboy@2.1.0': {} @@ -15287,6 +17517,12 @@ snapshots: '@floating-ui/core': 1.6.0 '@floating-ui/utils': 0.2.1 + '@floating-ui/react-dom@2.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@floating-ui/dom': 1.6.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + '@floating-ui/react-dom@2.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/dom': 1.6.3 @@ -15322,10 +17558,20 @@ snapshots: graphql: 16.8.1 tslib: 2.6.2 + '@graphql-typed-document-node/core@3.2.0(graphql@15.8.0)': + dependencies: + graphql: 15.8.0 + '@graphql-typed-document-node/core@3.2.0(graphql@16.8.1)': dependencies: graphql: 16.8.1 + '@hapi/hoek@9.3.0': {} + + '@hapi/topo@5.1.0': + dependencies: + '@hapi/hoek': 9.3.0 + '@hirosystems/token-metadata-api-client@1.2.0(encoding@0.1.13)': dependencies: isomorphic-fetch: 3.0.0(encoding@0.1.13) @@ -15353,12 +17599,51 @@ snapshots: wrap-ansi: 7.0.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/ttlcache@1.4.1': {} + '@istanbuljs/schema@0.1.3': {} + '@jest/create-cache-key-function@29.7.0': + dependencies: + '@jest/types': 29.6.3 + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.12.12 + jest-mock: 29.7.0 + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.12.12 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 + '@jest/types@26.6.2': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.12.12 + '@types/yargs': 15.0.19 + chalk: 4.1.2 + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.12.12 + '@types/yargs': 17.0.32 + chalk: 4.1.2 + '@josephg/resolvable@1.0.1': {} '@jridgewell/gen-mapping@0.3.3': @@ -15388,7 +17673,6 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - optional: true '@jridgewell/sourcemap-codec@1.4.15': {} @@ -15456,7 +17740,7 @@ snapshots: - '@vue/compiler-sfc' - supports-color - '@leather-wallet/query@0.8.8(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@leather-wallet/query@0.8.8(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)': dependencies: '@fungible-systems/zone-file': 2.0.0 '@hirosystems/token-metadata-api-client': 1.2.0(encoding@0.1.13) @@ -15475,9 +17759,9 @@ snapshots: '@stacks/stacks-blockchain-api-types': 7.8.2 '@stacks/transactions': 6.15.0(encoding@0.1.13) '@tanstack/query-sync-storage-persister': 4.35.7 - '@tanstack/react-query': 4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-query-devtools': 4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/react-query-persist-client': 4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@tanstack/react-query': 4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) + '@tanstack/react-query-devtools': 4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-query-persist-client': 4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)) alex-sdk: 0.1.26(@stacks/network@6.13.0(encoding@0.1.13))(@stacks/transactions@6.15.0(encoding@0.1.13)) axios: 1.6.7 bignumber.js: 9.1.2 @@ -15500,6 +17784,54 @@ snapshots: '@leather-wallet/tokens@0.5.2': {} + '@leather-wallet/ui@1.4.4(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@swc/core@1.4.8)(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5)': + dependencies: + '@expo/vector-icons': 14.0.0 + '@leather-wallet/tokens': 0.5.2 + '@leather-wallet/utils': 0.8.2 + '@radix-ui/react-accessible-icon': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-accordion': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-avatar': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-select': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-tabs': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-toast': 1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@react-native/assets-registry': 0.73.1 + '@react-native/metro-config': 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + '@rnx-kit/metro-config': 1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@rnx-kit/metro-resolver-symlinks': 0.1.35 + '@shopify/restyle': 2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@storybook/react': 7.6.15(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.5) + expo: 51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + expo-asset: 10.0.6(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) + expo-constants: 16.0.1(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) + expo-font: 12.0.5(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) + expo-splash-screen: 0.27.4(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) + metro-cache: 0.80.5 + metro-config: 0.80.5(encoding@0.1.13) + metro-resolver: 0.80.5 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + tsup: 8.1.0(@swc/core@1.4.8)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5) + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - '@microsoft/api-extractor' + - '@swc/core' + - '@types/react' + - '@types/react-dom' + - bufferutil + - encoding + - expo-modules-autolinking + - postcss + - supports-color + - ts-node + - typescript + - utf-8-validate + '@leather-wallet/utils@0.8.2': dependencies: '@leather-wallet/constants': 0.6.4 @@ -15551,7 +17883,7 @@ snapshots: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.6.0 + semver: 7.6.2 tar: 6.2.0 transitivePeerDependencies: - encoding @@ -15647,9 +17979,13 @@ snapshots: '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 - semver: 7.6.0 + semver: 7.6.2 optional: true + '@npmcli/fs@3.1.1': + dependencies: + semver: 7.6.2 + '@npmcli/map-workspaces@3.0.4': dependencies: '@npmcli/name-from-folder': 2.0.0 @@ -16069,6 +18405,16 @@ snapshots: dependencies: '@babel/runtime': 7.24.4 + '@radix-ui/react-accessible-icon@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-accessible-icon@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16079,20 +18425,20 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-accordion@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-accordion@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 @@ -16112,6 +18458,16 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16132,6 +18488,19 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-avatar@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-avatar@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16162,19 +18531,32 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) optionalDependencies: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 @@ -16192,6 +18574,13 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16214,6 +18603,13 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-context@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-context@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16221,6 +18617,29 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16244,6 +18663,13 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-direction@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-direction@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16251,6 +18677,20 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16265,6 +18705,22 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16281,6 +18737,13 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16288,6 +18751,18 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16333,6 +18808,14 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-id@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-id@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16351,6 +18834,33 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16402,6 +18912,25 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/rect': 1.0.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16421,6 +18950,16 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16431,6 +18970,17 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16442,6 +18992,16 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16471,6 +19031,24 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16507,6 +19085,36 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-select@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + aria-hidden: 1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-select@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16567,6 +19175,14 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-slot@1.0.2(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-slot@1.0.2(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16591,6 +19207,23 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-tabs@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-tabs@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16608,6 +19241,27 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-toast@1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-toast@1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16629,6 +19283,27 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16650,6 +19325,13 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16657,6 +19339,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16665,6 +19355,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16673,6 +19371,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16680,6 +19385,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16687,6 +19399,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/rect': 1.0.1 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16695,6 +19415,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.2.0) + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.24.4 @@ -16703,6 +19431,16 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + '@babel/runtime': 7.23.9 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.23.9 @@ -16713,59 +19451,514 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/rect@1.0.1': + '@radix-ui/rect@1.0.1': + dependencies: + '@babel/runtime': 7.24.4 + + '@radix-ui/themes@2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/colors': 3.0.0 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-accessible-icon': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-alert-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-aspect-ratio': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-avatar': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-checkbox': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-context-menu': 2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-form': 0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-hover-card': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popover': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-radio-group': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-scroll-area': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slider': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-switch': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tabs': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + + '@react-native-community/cli-clean@13.6.6(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) + chalk: 4.1.2 + execa: 5.1.1 + fast-glob: 3.3.2 + transitivePeerDependencies: + - encoding + + '@react-native-community/cli-config@13.6.6(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) + chalk: 4.1.2 + cosmiconfig: 5.2.1 + deepmerge: 4.3.1 + fast-glob: 3.3.2 + joi: 17.13.1 + transitivePeerDependencies: + - encoding + + '@react-native-community/cli-debugger-ui@13.6.6': + dependencies: + serve-static: 1.15.0 + transitivePeerDependencies: + - supports-color + + '@react-native-community/cli-doctor@13.6.6(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-config': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-platform-android': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-platform-apple': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-platform-ios': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) + chalk: 4.1.2 + command-exists: 1.2.9 + deepmerge: 4.3.1 + envinfo: 7.11.0 + execa: 5.1.1 + hermes-profile-transformer: 0.0.6 + node-stream-zip: 1.15.0 + ora: 5.4.1 + semver: 7.6.2 + strip-ansi: 5.2.0 + wcwidth: 1.0.1 + yaml: 2.3.4 + transitivePeerDependencies: + - encoding + + '@react-native-community/cli-hermes@13.6.6(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-platform-android': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) + chalk: 4.1.2 + hermes-profile-transformer: 0.0.6 + transitivePeerDependencies: + - encoding + + '@react-native-community/cli-platform-android@13.6.6(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) + chalk: 4.1.2 + execa: 5.1.1 + fast-glob: 3.3.2 + fast-xml-parser: 4.4.0 + logkitty: 0.7.1 + transitivePeerDependencies: + - encoding + + '@react-native-community/cli-platform-apple@13.6.6(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) + chalk: 4.1.2 + execa: 5.1.1 + fast-glob: 3.3.2 + fast-xml-parser: 4.4.0 + ora: 5.4.1 + transitivePeerDependencies: + - encoding + + '@react-native-community/cli-platform-ios@13.6.6(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-platform-apple': 13.6.6(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + '@react-native-community/cli-server-api@13.6.6(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-debugger-ui': 13.6.6 + '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) + compression: 1.7.4 + connect: 3.7.0 + errorhandler: 1.5.1 + nocache: 3.0.4 + pretty-format: 26.6.2 + serve-static: 1.15.0 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@react-native-community/cli-tools@13.6.6(encoding@0.1.13)': + dependencies: + appdirsjs: 1.2.7 + chalk: 4.1.2 + execa: 5.1.1 + find-up: 5.0.0 + mime: 2.6.0 + node-fetch: 2.7.0(encoding@0.1.13) + open: 6.4.0 + ora: 5.4.1 + semver: 7.6.2 + shell-quote: 1.8.1 + sudo-prompt: 9.2.1 + transitivePeerDependencies: + - encoding + + '@react-native-community/cli-types@13.6.6': + dependencies: + joi: 17.13.1 + + '@react-native-community/cli@13.6.6(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-clean': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-config': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-debugger-ui': 13.6.6 + '@react-native-community/cli-doctor': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-hermes': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-server-api': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-types': 13.6.6 + chalk: 4.1.2 + commander: 9.5.0 + deepmerge: 4.3.1 + execa: 5.1.1 + find-up: 4.1.0 + fs-extra: 8.1.0 + graceful-fs: 4.2.11 + prompts: 2.4.2 + semver: 7.6.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@react-native/assets-registry@0.73.1': {} + + '@react-native/assets-registry@0.74.83': {} + + '@react-native/assets-registry@0.74.84': {} + + '@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@react-native/codegen': 0.73.3(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + '@react-native/babel-plugin-codegen@0.74.83(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + '@react-native/babel-plugin-codegen@0.74.84(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@react-native/codegen': 0.74.84(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + '@react-native/babel-preset@0.73.21(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.4) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.4) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.4) + '@babel/template': 7.24.7 + '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.4) + react-refresh: 0.14.2 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + '@react-native/babel-preset@0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.4) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.24.4) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.4) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.4) + '@babel/template': 7.24.7 + '@react-native/babel-plugin-codegen': 0.74.83(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.4) + react-refresh: 0.14.2 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + '@react-native/babel-preset@0.74.84(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.4) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.24.4) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.4) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.24.6(@babel/core@7.24.4) + '@babel/template': 7.24.7 + '@react-native/babel-plugin-codegen': 0.74.84(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.4) + react-refresh: 0.14.2 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + '@react-native/codegen@0.73.3(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@babel/parser': 7.24.7 + '@babel/preset-env': 7.24.6(@babel/core@7.24.4) + flow-parser: 0.206.0 + glob: 7.2.3 + invariant: 2.2.4 + jscodeshift: 0.14.0(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + mkdirp: 0.5.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + '@react-native/codegen@0.74.83(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@babel/parser': 7.24.7 + '@babel/preset-env': 7.24.6(@babel/core@7.24.4) + glob: 7.2.3 + hermes-parser: 0.19.1 + invariant: 2.2.4 + jscodeshift: 0.14.0(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + mkdirp: 0.5.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + '@react-native/codegen@0.74.84(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@babel/parser': 7.24.7 + '@babel/preset-env': 7.24.6(@babel/core@7.24.4) + glob: 7.2.3 + hermes-parser: 0.19.1 + invariant: 2.2.4 + jscodeshift: 0.14.0(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + mkdirp: 0.5.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + '@react-native/community-cli-plugin@0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)': + dependencies: + '@react-native-community/cli-server-api': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-tools': 13.6.6(encoding@0.1.13) + '@react-native/dev-middleware': 0.74.83(encoding@0.1.13) + '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + chalk: 4.1.2 + execa: 5.1.1 + metro: 0.80.9(encoding@0.1.13) + metro-config: 0.80.9(encoding@0.1.13) + metro-core: 0.80.9 + node-fetch: 2.7.0(encoding@0.1.13) + querystring: 0.2.1 + readline: 1.3.0 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@react-native/debugger-frontend@0.74.83': {} + + '@react-native/dev-middleware@0.74.83(encoding@0.1.13)': + dependencies: + '@isaacs/ttlcache': 1.4.1 + '@react-native/debugger-frontend': 0.74.83 + '@rnx-kit/chromium-edge-launcher': 1.0.0 + chrome-launcher: 0.15.2 + connect: 3.7.0 + debug: 2.6.9 + node-fetch: 2.7.0(encoding@0.1.13) + nullthrows: 1.1.1 + open: 7.4.2 + selfsigned: 2.4.1 + serve-static: 1.15.0 + temp-dir: 2.0.0 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@react-native/gradle-plugin@0.74.83': {} + + '@react-native/js-polyfills@0.73.1': {} + + '@react-native/js-polyfills@0.74.83': {} + + '@react-native/metro-babel-transformer@0.73.15(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@babel/core': 7.24.4 + '@react-native/babel-preset': 0.73.21(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + hermes-parser: 0.15.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + '@react-native/metro-babel-transformer@0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))': + dependencies: + '@babel/core': 7.24.4 + '@react-native/babel-preset': 0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + hermes-parser: 0.19.1 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + '@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)': dependencies: - '@babel/runtime': 7.24.4 + '@react-native/js-polyfills': 0.73.1 + '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + metro-config: 0.80.9(encoding@0.1.13) + metro-runtime: 0.80.9 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - supports-color + - utf-8-validate - '@radix-ui/themes@2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-native/normalize-colors@0.74.83': {} + + '@react-native/virtualized-lists@0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: - '@radix-ui/colors': 3.0.0 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-accessible-icon': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-alert-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-aspect-ratio': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-avatar': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-checkbox': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-context-menu': 2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-form': 0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-hover-card': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-popover': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-radio-group': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-scroll-area': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-select': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slider': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-switch': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-tabs': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + invariant: 2.2.4 + nullthrows: 1.1.1 + react: 18.2.0 + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) optionalDependencies: '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@redux-devtools/app@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/app@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/chart-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) - '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) - '@redux-devtools/inspector-monitor-test-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@redux-devtools/inspector-monitor-trace-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) - '@redux-devtools/log-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) - '@redux-devtools/rtk-query-monitor': 5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@redux-devtools/slider-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/chart-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor-test-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/inspector-monitor-trace-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/log-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) + '@redux-devtools/rtk-query-monitor': 5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/slider-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1) + '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) '@types/react': 18.3.3 '@types/styled-components': 5.1.34 d3-state-visualizer: 2.0.0 @@ -16778,7 +19971,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-icons: 4.12.0(react@18.3.1) react-is: 18.2.0 - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) + react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) redux: 4.2.1 redux-persist: 6.0.0(react@18.3.1)(redux@4.2.1) socketcluster-client: 17.2.2 @@ -16789,10 +19982,10 @@ snapshots: - react-native - utf-8-validate - '@redux-devtools/chart-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/chart-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/runtime': 7.23.9 - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 d3-state-visualizer: 2.0.0 @@ -16801,11 +19994,11 @@ snapshots: redux: 4.2.1 redux-devtools-themes: 1.0.0 - '@redux-devtools/cli@4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)': + '@redux-devtools/cli@4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))': dependencies: '@apollo/server': 4.10.0(encoding@0.1.13)(graphql@16.8.1) '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/app': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/app': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@types/react': 18.3.3 body-parser: 1.20.2 chalk: 5.3.0 @@ -16845,20 +20038,20 @@ snapshots: - tedious - utf-8-validate - '@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1)': dependencies: '@babel/runtime': 7.23.9 '@redux-devtools/instrument': 2.2.0(redux@4.2.1) lodash: 4.17.21 react: 18.3.1 - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) - redux: 4.2.1 + react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) + redux: 5.0.1 - '@redux-devtools/inspector-monitor-test-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/inspector-monitor-test-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@types/react': 18.3.3 '@types/styled-components': 5.1.34 @@ -16873,12 +20066,12 @@ snapshots: simple-diff: 1.7.2 styled-components: 5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1) - '@redux-devtools/inspector-monitor-trace-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/inspector-monitor-trace-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/code-frame': 8.0.0-alpha.5 '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) '@types/chrome': 0.0.254 '@types/react': 18.3.3 anser: 2.1.1 @@ -16890,7 +20083,7 @@ snapshots: redux-devtools-themes: 1.0.0 source-map: 0.5.7 - '@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1)': + '@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1)': dependencies: '@babel/runtime': 7.23.9 '@dnd-kit/core': 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -16898,7 +20091,7 @@ snapshots: '@dnd-kit/sortable': 8.0.0(@dnd-kit/core@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@dnd-kit/utilities': 3.2.2(react@18.3.1) '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@types/lodash': 4.14.202 '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -16927,10 +20120,10 @@ snapshots: lodash: 4.17.21 redux: 5.0.1 - '@redux-devtools/log-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/log-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/runtime': 7.23.9 - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@types/lodash.debounce': 4.0.9 '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -16940,11 +20133,11 @@ snapshots: redux: 4.2.1 redux-devtools-themes: 1.0.0 - '@redux-devtools/remote@0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': + '@redux-devtools/remote@0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': dependencies: '@babel/runtime': 7.24.4 '@redux-devtools/instrument': 2.2.0(redux@5.0.1) - '@redux-devtools/utils': 3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) + '@redux-devtools/utils': 3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) jsan: 3.1.14 querystring: 0.2.1 redux: 5.0.1 @@ -16956,13 +20149,13 @@ snapshots: - immutable - utf-8-validate - '@redux-devtools/rtk-query-monitor@5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/rtk-query-monitor@5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1) + '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) '@types/lodash': 4.14.202 '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -16985,10 +20178,10 @@ snapshots: immutable: 4.3.6 jsan: 3.1.14 - '@redux-devtools/slider-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/slider-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -17025,10 +20218,10 @@ snapshots: transitivePeerDependencies: - react-dom - '@redux-devtools/utils@3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': + '@redux-devtools/utils@3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': dependencies: '@babel/runtime': 7.24.4 - '@redux-devtools/core': 4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/serialize': 0.4.2(immutable@4.3.6) '@types/get-params': 0.1.2 get-params: 0.1.2 @@ -17038,7 +20231,7 @@ snapshots: nanoid: 3.3.4 redux: 5.0.1 - '@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(react@18.3.1)': + '@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)': dependencies: immer: 9.0.21 redux: 4.2.1 @@ -17046,9 +20239,9 @@ snapshots: reselect: 4.1.8 optionalDependencies: react: 18.3.1 - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) + react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) - '@reduxjs/toolkit@2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1))(react@18.3.1)': + '@reduxjs/toolkit@2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)': dependencies: immer: 10.0.4 redux: 5.0.1 @@ -17056,7 +20249,7 @@ snapshots: reselect: 5.1.0 optionalDependencies: react: 18.3.1 - react-redux: 9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1) + react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) '@remix-run/router@1.16.1': {} @@ -17074,6 +20267,50 @@ snapshots: react: 18.3.1 react-is: 16.9.0 + '@rnx-kit/chromium-edge-launcher@1.0.0': + dependencies: + '@types/node': 18.19.34 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + mkdirp: 1.0.4 + rimraf: 3.0.2 + transitivePeerDependencies: + - supports-color + + '@rnx-kit/console@1.1.0': {} + + '@rnx-kit/metro-config@1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + dependencies: + '@rnx-kit/console': 1.1.0 + '@rnx-kit/tools-node': 2.1.1 + '@rnx-kit/tools-react-native': 1.3.5 + '@rnx-kit/tools-workspaces': 0.1.6 + react: 18.2.0 + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + optionalDependencies: + '@react-native/metro-config': 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + + '@rnx-kit/metro-resolver-symlinks@0.1.35': + dependencies: + '@rnx-kit/console': 1.1.0 + '@rnx-kit/tools-node': 2.1.1 + '@rnx-kit/tools-react-native': 1.3.5 + enhanced-resolve: 5.16.1 + + '@rnx-kit/tools-node@2.1.1': {} + + '@rnx-kit/tools-react-native@1.3.5': + dependencies: + '@rnx-kit/tools-node': 2.1.1 + + '@rnx-kit/tools-workspaces@0.1.6': + dependencies: + fast-glob: 3.3.2 + find-up: 5.0.0 + read-yaml-file: 2.1.0 + strip-json-comments: 3.1.1 + '@rollup/rollup-android-arm-eabi@4.14.0': optional: true @@ -17197,6 +20434,11 @@ snapshots: '@segment/isodate@1.0.3': {} + '@segment/loosely-validate-event@2.0.0': + dependencies: + component-type: 1.2.2 + join-component: 1.1.0 + '@segment/tsub@2.0.0': dependencies: '@stdlib/math-base-special-ldexp': 0.0.5 @@ -17332,6 +20574,19 @@ snapshots: - encoding - supports-color + '@shopify/restyle@2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + dependencies: + react: 18.2.0 + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + + '@sideway/address@4.1.5': + dependencies: + '@hapi/hoek': 9.3.0 + + '@sideway/formula@3.0.1': {} + + '@sideway/pinpoint@2.0.0': {} + '@sinclair/typebox@0.27.8': {} '@sindresorhus/is@4.6.0': {} @@ -17340,6 +20595,14 @@ snapshots: '@sindresorhus/merge-streams@2.3.0': {} + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@10.3.0': + dependencies: + '@sinonjs/commons': 3.0.1 + '@socket.io/component-emitter@3.0.0': {} '@socket.io/component-emitter@3.1.2': {} @@ -18132,48 +21395,51 @@ snapshots: dependencies: react: 18.3.1 - '@storybook/addon-actions@8.0.1': + '@storybook/addon-actions@8.1.4': dependencies: - '@storybook/core-events': 8.0.1 + '@storybook/core-events': 8.1.4 '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 uuid: 9.0.1 - '@storybook/addon-backgrounds@8.0.1': + '@storybook/addon-backgrounds@8.1.4': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-controls@8.0.1(@types/react@18.3.3)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/addon-controls@8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/blocks': 8.0.1(@types/react@18.3.3)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/blocks': 8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + dequal: 2.0.3 lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' + - '@types/react-dom' - encoding + - prettier - react - react-dom - supports-color - '@storybook/addon-docs@8.0.1(encoding@0.1.13)': + '@storybook/addon-docs@8.1.4(@types/react-dom@18.3.0)(encoding@0.1.13)(prettier@3.2.5)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.4 '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) - '@storybook/blocks': 8.0.1(@types/react@18.3.3)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/client-logger': 8.0.1 - '@storybook/components': 8.0.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/csf-plugin': 8.0.1 - '@storybook/csf-tools': 8.0.1 + '@storybook/blocks': 8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/client-logger': 8.1.4 + '@storybook/components': 8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/csf-plugin': 8.1.4 + '@storybook/csf-tools': 8.1.4 '@storybook/global': 5.0.0 - '@storybook/node-logger': 8.0.1 - '@storybook/preview-api': 8.0.1 - '@storybook/react-dom-shim': 8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/theming': 8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 8.0.1 + '@storybook/node-logger': 8.1.4 + '@storybook/preview-api': 8.1.4 + '@storybook/react-dom-shim': 8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/theming': 8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/types': 8.1.4 '@types/react': 18.3.3 fs-extra: 11.2.0 react: 18.3.1 @@ -18182,42 +21448,46 @@ snapshots: rehype-slug: 6.0.0 ts-dedent: 2.2.0 transitivePeerDependencies: + - '@types/react-dom' - encoding + - prettier - supports-color - '@storybook/addon-essentials@8.0.1(@types/react@18.3.3)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@storybook/addon-actions': 8.0.1 - '@storybook/addon-backgrounds': 8.0.1 - '@storybook/addon-controls': 8.0.1(@types/react@18.3.3)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs': 8.0.1(encoding@0.1.13) - '@storybook/addon-highlight': 8.0.1 - '@storybook/addon-measure': 8.0.1 - '@storybook/addon-outline': 8.0.1 - '@storybook/addon-toolbars': 8.0.1 - '@storybook/addon-viewport': 8.0.1 - '@storybook/core-common': 8.0.1(encoding@0.1.13) - '@storybook/manager-api': 8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/node-logger': 8.0.1 - '@storybook/preview-api': 8.0.1 + '@storybook/addon-essentials@8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@storybook/addon-actions': 8.1.4 + '@storybook/addon-backgrounds': 8.1.4 + '@storybook/addon-controls': 8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 8.1.4(@types/react-dom@18.3.0)(encoding@0.1.13)(prettier@3.2.5) + '@storybook/addon-highlight': 8.1.4 + '@storybook/addon-measure': 8.1.4 + '@storybook/addon-outline': 8.1.4 + '@storybook/addon-toolbars': 8.1.4 + '@storybook/addon-viewport': 8.1.4 + '@storybook/core-common': 8.1.4(encoding@0.1.13)(prettier@3.2.5) + '@storybook/manager-api': 8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/node-logger': 8.1.4 + '@storybook/preview-api': 8.1.4 ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' + - '@types/react-dom' - encoding + - prettier - react - react-dom - supports-color - '@storybook/addon-highlight@8.0.1': + '@storybook/addon-highlight@8.1.4': dependencies: '@storybook/global': 5.0.0 - '@storybook/addon-interactions@8.0.1(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1))': + '@storybook/addon-interactions@8.1.4(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.0.1 - '@storybook/test': 8.0.1(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1)) - '@storybook/types': 8.0.1 + '@storybook/instrumenter': 8.1.4 + '@storybook/test': 8.1.4(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1)) + '@storybook/types': 8.1.4 polished: 4.3.1 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -18235,22 +21505,22 @@ snapshots: optionalDependencies: react: 18.3.1 - '@storybook/addon-mdx-gfm@8.0.1': + '@storybook/addon-mdx-gfm@8.1.4': dependencies: - '@storybook/node-logger': 8.0.1 + '@storybook/node-logger': 8.1.4 remark-gfm: 4.0.0 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - '@storybook/addon-measure@8.0.1': + '@storybook/addon-measure@8.1.4': dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.3 '@storybook/addon-onboarding@8.0.1': {} - '@storybook/addon-outline@8.0.1': + '@storybook/addon-outline@8.1.4': dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 @@ -18260,9 +21530,9 @@ snapshots: '@storybook/node-logger': 8.0.1 webpack: 5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) - '@storybook/addon-toolbars@8.0.1': {} + '@storybook/addon-toolbars@8.1.4': {} - '@storybook/addon-viewport@8.0.1': + '@storybook/addon-viewport@8.1.4': dependencies: memoizerific: 1.11.3 @@ -18274,54 +21544,20 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/blocks@8.0.1(@types/react@18.3.3)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@storybook/channels': 8.0.1 - '@storybook/client-logger': 8.0.1 - '@storybook/components': 8.0.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/core-events': 8.0.1 - '@storybook/csf': 0.1.2 - '@storybook/docs-tools': 8.0.1(encoding@0.1.13) - '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/manager-api': 8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/preview-api': 8.0.1 - '@storybook/theming': 8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 8.0.1 - '@types/lodash': 4.14.202 - color-convert: 2.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - markdown-to-jsx: 7.3.2(react@18.3.1) - memoizerific: 1.11.3 - polished: 4.3.1 - react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - telejson: 7.2.0 - tocbot: 4.25.0 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - encoding - - supports-color - - '@storybook/blocks@8.0.6(@types/react@18.3.3)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/blocks@8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/channels': 8.0.6 - '@storybook/client-logger': 8.0.6 - '@storybook/components': 8.0.6(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/core-events': 8.0.6 - '@storybook/csf': 0.1.2 - '@storybook/docs-tools': 8.0.6(encoding@0.1.13) + '@storybook/channels': 8.1.4 + '@storybook/client-logger': 8.1.4 + '@storybook/components': 8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/core-events': 8.1.4 + '@storybook/csf': 0.1.7 + '@storybook/docs-tools': 8.1.4(encoding@0.1.13)(prettier@3.2.5) '@storybook/global': 5.0.0 '@storybook/icons': 1.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/manager-api': 8.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/preview-api': 8.0.6 - '@storybook/theming': 8.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 8.0.6 + '@storybook/manager-api': 8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/preview-api': 8.1.4 + '@storybook/theming': 8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/types': 8.1.4 '@types/lodash': 4.14.202 color-convert: 2.0.1 dequal: 2.0.3 @@ -18339,7 +21575,9 @@ snapshots: react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: - '@types/react' + - '@types/react-dom' - encoding + - prettier - supports-color '@storybook/builder-manager@8.1.4(encoding@0.1.13)(prettier@3.2.5)': @@ -18363,32 +21601,32 @@ snapshots: - prettier - supports-color - '@storybook/builder-webpack5@8.0.1(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))': + '@storybook/builder-webpack5@8.1.4(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(prettier@3.2.5)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))': dependencies: - '@storybook/channels': 8.0.1 - '@storybook/client-logger': 8.0.1 - '@storybook/core-common': 8.0.1(encoding@0.1.13) - '@storybook/core-events': 8.0.1 - '@storybook/core-webpack': 8.0.1(encoding@0.1.13) - '@storybook/node-logger': 8.0.1 - '@storybook/preview': 8.0.1 - '@storybook/preview-api': 8.0.1 - '@types/node': 18.19.29 - '@types/semver': 7.5.7 + '@storybook/channels': 8.1.4 + '@storybook/client-logger': 8.1.4 + '@storybook/core-common': 8.1.4(encoding@0.1.13)(prettier@3.2.5) + '@storybook/core-events': 8.1.4 + '@storybook/core-webpack': 8.1.4(encoding@0.1.13)(prettier@3.2.5) + '@storybook/node-logger': 8.1.4 + '@storybook/preview': 8.1.4 + '@storybook/preview-api': 8.1.4 + '@types/node': 18.19.34 + '@types/semver': 7.5.8 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.2.3 constants-browserify: 1.0.0 css-loader: 6.11.0(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) - es-module-lexer: 1.4.1 + es-module-lexer: 1.5.3 express: 4.19.2 fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.4.5)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) fs-extra: 11.2.0 html-webpack-plugin: 5.6.0(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) - magic-string: 0.30.9 + magic-string: 0.30.10 path-browserify: 1.0.1 process: 0.11.10 - semver: 7.6.0 + semver: 7.6.2 style-loader: 3.3.4(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) terser-webpack-plugin: 5.3.10(@swc/core@1.4.8)(esbuild@0.21.4)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) ts-dedent: 2.2.0 @@ -18406,23 +21644,17 @@ snapshots: - '@swc/core' - encoding - esbuild + - prettier - supports-color - uglify-js - webpack-cli - '@storybook/channels@8.0.1': - dependencies: - '@storybook/client-logger': 8.0.1 - '@storybook/core-events': 8.0.1 - '@storybook/global': 5.0.0 - telejson: 7.2.0 - tiny-invariant: 1.3.3 - - '@storybook/channels@8.0.6': + '@storybook/channels@7.6.15': dependencies: - '@storybook/client-logger': 8.0.6 - '@storybook/core-events': 8.0.6 + '@storybook/client-logger': 7.6.15 + '@storybook/core-events': 7.6.15 '@storybook/global': 5.0.0 + qs: 6.11.2 telejson: 7.2.0 tiny-invariant: 1.3.3 @@ -18481,11 +21713,7 @@ snapshots: - supports-color - utf-8-validate - '@storybook/client-logger@8.0.1': - dependencies: - '@storybook/global': 5.0.0 - - '@storybook/client-logger@8.0.6': + '@storybook/client-logger@7.6.15': dependencies: '@storybook/global': 5.0.0 @@ -18513,85 +21741,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/components@8.0.1(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) - '@storybook/client-logger': 8.0.1 - '@storybook/csf': 0.1.2 - '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/theming': 8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 8.0.1 - memoizerific: 1.11.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - util-deprecate: 1.0.2 - transitivePeerDependencies: - - '@types/react' - - '@storybook/components@8.0.6(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/components@8.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) - '@storybook/client-logger': 8.0.6 - '@storybook/csf': 0.1.2 + '@storybook/client-logger': 8.1.4 + '@storybook/csf': 0.1.7 '@storybook/global': 5.0.0 '@storybook/icons': 1.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/theming': 8.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 8.0.6 + '@storybook/theming': 8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/types': 8.1.4 memoizerific: 1.11.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) util-deprecate: 1.0.2 transitivePeerDependencies: - '@types/react' + - '@types/react-dom' - '@storybook/core-common@8.0.1(encoding@0.1.13)': + '@storybook/core-client@7.6.15': dependencies: - '@storybook/core-events': 8.0.1 - '@storybook/csf-tools': 8.0.1 - '@storybook/node-logger': 8.0.1 - '@storybook/types': 8.0.1 - '@yarnpkg/fslib': 2.10.3 - '@yarnpkg/libzip': 2.3.0 - chalk: 4.1.2 - cross-spawn: 7.0.3 - esbuild: 0.20.2 - esbuild-register: 3.5.0(esbuild@0.20.2) - execa: 5.1.1 - file-system-cache: 2.3.0 - find-cache-dir: 3.3.2 - find-up: 5.0.0 - fs-extra: 11.2.0 - glob: 10.3.10 - handlebars: 4.7.8 - lazy-universal-dotenv: 4.0.0 - node-fetch: 2.7.0(encoding@0.1.13) - picomatch: 2.3.1 - pkg-dir: 5.0.0 - pretty-hrtime: 1.0.3 - resolve-from: 5.0.0 - semver: 7.6.0 - tempy: 1.0.1 - tiny-invariant: 1.3.3 - ts-dedent: 2.2.0 - util: 0.12.5 - transitivePeerDependencies: - - encoding - - supports-color + '@storybook/client-logger': 7.6.15 + '@storybook/preview-api': 7.6.15 - '@storybook/core-common@8.0.6(encoding@0.1.13)': + '@storybook/core-common@7.6.15(encoding@0.1.13)': dependencies: - '@storybook/core-events': 8.0.6 - '@storybook/csf-tools': 8.0.6 - '@storybook/node-logger': 8.0.6 - '@storybook/types': 8.0.6 - '@yarnpkg/fslib': 2.10.3 - '@yarnpkg/libzip': 2.3.0 + '@storybook/core-events': 7.6.15 + '@storybook/node-logger': 7.6.15 + '@storybook/types': 7.6.15 + '@types/find-cache-dir': 3.2.1 + '@types/node': 18.19.34 + '@types/node-fetch': 2.6.11 + '@types/pretty-hrtime': 1.0.3 chalk: 4.1.2 - cross-spawn: 7.0.3 - esbuild: 0.20.2 - esbuild-register: 3.5.0(esbuild@0.20.2) - execa: 5.1.1 + esbuild: 0.18.20 + esbuild-register: 3.5.0(esbuild@0.18.20) file-system-cache: 2.3.0 find-cache-dir: 3.3.2 find-up: 5.0.0 @@ -18604,11 +21788,7 @@ snapshots: pkg-dir: 5.0.0 pretty-hrtime: 1.0.3 resolve-from: 5.0.0 - semver: 7.6.0 - tempy: 1.0.1 - tiny-invariant: 1.3.3 ts-dedent: 2.2.0 - util: 0.12.5 transitivePeerDependencies: - encoding - supports-color @@ -18639,7 +21819,7 @@ snapshots: prettier-fallback: prettier@3.2.5 pretty-hrtime: 1.0.3 resolve-from: 5.0.0 - semver: 7.6.0 + semver: 7.6.2 tempy: 1.0.1 tiny-invariant: 1.3.3 ts-dedent: 2.2.0 @@ -18650,11 +21830,7 @@ snapshots: - encoding - supports-color - '@storybook/core-events@8.0.1': - dependencies: - ts-dedent: 2.2.0 - - '@storybook/core-events@8.0.6': + '@storybook/core-events@7.6.15': dependencies: ts-dedent: 2.2.0 @@ -18720,58 +21896,31 @@ snapshots: - supports-color - utf-8-validate - '@storybook/core-webpack@8.0.1(encoding@0.1.13)': - dependencies: - '@storybook/core-common': 8.0.1(encoding@0.1.13) - '@storybook/node-logger': 8.0.1 - '@storybook/types': 8.0.1 - '@types/node': 18.19.29 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - encoding - - supports-color - - '@storybook/csf-plugin@8.0.1': - dependencies: - '@storybook/csf-tools': 8.0.1 - unplugin: 1.7.1 - transitivePeerDependencies: - - supports-color - - '@storybook/csf-tools@8.0.1': + '@storybook/core-webpack@8.1.4(encoding@0.1.13)(prettier@3.2.5)': dependencies: - '@babel/generator': 7.23.6 - '@babel/parser': 7.24.0 - '@babel/traverse': 7.24.0(supports-color@5.5.0) - '@babel/types': 7.24.0 - '@storybook/csf': 0.1.2 - '@storybook/types': 8.0.1 - fs-extra: 11.2.0 - recast: 0.23.6 + '@storybook/core-common': 8.1.4(encoding@0.1.13)(prettier@3.2.5) + '@storybook/node-logger': 8.1.4 + '@storybook/types': 8.1.4 + '@types/node': 18.19.34 ts-dedent: 2.2.0 transitivePeerDependencies: + - encoding + - prettier - supports-color - '@storybook/csf-tools@8.0.6': + '@storybook/csf-plugin@8.1.4': dependencies: - '@babel/generator': 7.24.4 - '@babel/parser': 7.24.7 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.7 - '@storybook/csf': 0.1.2 - '@storybook/types': 8.0.6 - fs-extra: 11.2.0 - recast: 0.23.6 - ts-dedent: 2.2.0 + '@storybook/csf-tools': 8.1.4 + unplugin: 1.7.1 transitivePeerDependencies: - supports-color '@storybook/csf-tools@8.1.4': dependencies: - '@babel/generator': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + '@babel/generator': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 '@storybook/csf': 0.1.7 '@storybook/types': 8.1.4 fs-extra: 11.2.0 @@ -18794,11 +21943,11 @@ snapshots: '@storybook/docs-mdx@3.1.0-next.0': {} - '@storybook/docs-tools@8.0.1(encoding@0.1.13)': + '@storybook/docs-tools@7.6.15(encoding@0.1.13)': dependencies: - '@storybook/core-common': 8.0.1(encoding@0.1.13) - '@storybook/preview-api': 8.0.1 - '@storybook/types': 8.0.1 + '@storybook/core-common': 7.6.15(encoding@0.1.13) + '@storybook/preview-api': 7.6.15 + '@storybook/types': 7.6.15 '@types/doctrine': 0.0.3 assert: 2.1.0 doctrine: 3.0.0 @@ -18807,17 +21956,19 @@ snapshots: - encoding - supports-color - '@storybook/docs-tools@8.0.6(encoding@0.1.13)': + '@storybook/docs-tools@8.1.4(encoding@0.1.13)(prettier@3.2.5)': dependencies: - '@storybook/core-common': 8.0.6(encoding@0.1.13) - '@storybook/preview-api': 8.0.6 - '@storybook/types': 8.0.6 + '@storybook/core-common': 8.1.4(encoding@0.1.13)(prettier@3.2.5) + '@storybook/core-events': 8.1.4 + '@storybook/preview-api': 8.1.4 + '@storybook/types': 8.1.4 '@types/doctrine': 0.0.3 assert: 2.1.0 doctrine: 3.0.0 lodash: 4.17.21 transitivePeerDependencies: - encoding + - prettier - supports-color '@storybook/global@5.0.0': {} @@ -18827,57 +21978,16 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/instrumenter@8.0.1': + '@storybook/instrumenter@8.1.4': dependencies: - '@storybook/channels': 8.0.1 - '@storybook/client-logger': 8.0.1 - '@storybook/core-events': 8.0.1 + '@storybook/channels': 8.1.4 + '@storybook/client-logger': 8.1.4 + '@storybook/core-events': 8.1.4 '@storybook/global': 5.0.0 - '@storybook/preview-api': 8.0.1 - '@vitest/utils': 1.3.1 + '@storybook/preview-api': 8.1.4 + '@vitest/utils': 1.6.0 util: 0.12.5 - '@storybook/manager-api@8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@storybook/channels': 8.0.1 - '@storybook/client-logger': 8.0.1 - '@storybook/core-events': 8.0.1 - '@storybook/csf': 0.1.2 - '@storybook/global': 5.0.0 - '@storybook/router': 8.0.1 - '@storybook/theming': 8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 8.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - store2: 2.14.3 - telejson: 7.2.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - react - - react-dom - - '@storybook/manager-api@8.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@storybook/channels': 8.0.6 - '@storybook/client-logger': 8.0.6 - '@storybook/core-events': 8.0.6 - '@storybook/csf': 0.1.2 - '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/router': 8.0.6 - '@storybook/theming': 8.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 8.0.6 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - store2: 2.14.3 - telejson: 7.2.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - react - - react-dom - '@storybook/manager-api@8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@storybook/channels': 8.1.4 @@ -18901,29 +22011,29 @@ snapshots: '@storybook/manager@8.1.4': {} - '@storybook/node-logger@8.0.1': {} + '@storybook/node-logger@7.6.15': {} - '@storybook/node-logger@8.0.6': {} + '@storybook/node-logger@8.0.1': {} '@storybook/node-logger@8.1.4': {} - '@storybook/preset-react-webpack@8.0.1(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))': + '@storybook/preset-react-webpack@8.1.4(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))': dependencies: - '@storybook/core-webpack': 8.0.1(encoding@0.1.13) - '@storybook/docs-tools': 8.0.1(encoding@0.1.13) - '@storybook/node-logger': 8.0.1 - '@storybook/react': 8.0.1(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5) + '@storybook/core-webpack': 8.1.4(encoding@0.1.13)(prettier@3.2.5) + '@storybook/docs-tools': 8.1.4(encoding@0.1.13)(prettier@3.2.5) + '@storybook/node-logger': 8.1.4 + '@storybook/react': 8.1.4(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.4.5)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) - '@types/node': 18.19.29 - '@types/semver': 7.5.7 + '@types/node': 18.19.34 + '@types/semver': 7.5.8 find-up: 5.0.0 fs-extra: 11.2.0 - magic-string: 0.30.9 + magic-string: 0.30.10 react: 18.3.1 react-docgen: 7.0.3 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 - semver: 7.6.0 + semver: 7.6.2 tsconfig-paths: 4.2.0 webpack: 5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) optionalDependencies: @@ -18932,41 +22042,25 @@ snapshots: - '@swc/core' - encoding - esbuild + - prettier - supports-color - uglify-js - webpack-cli - '@storybook/preview-api@8.0.1': - dependencies: - '@storybook/channels': 8.0.1 - '@storybook/client-logger': 8.0.1 - '@storybook/core-events': 8.0.1 - '@storybook/csf': 0.1.2 - '@storybook/global': 5.0.0 - '@storybook/types': 8.0.1 - '@types/qs': 6.9.11 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - qs: 6.11.2 - tiny-invariant: 1.3.3 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - - '@storybook/preview-api@8.0.6': + '@storybook/preview-api@7.6.15': dependencies: - '@storybook/channels': 8.0.6 - '@storybook/client-logger': 8.0.6 - '@storybook/core-events': 8.0.6 - '@storybook/csf': 0.1.2 + '@storybook/channels': 7.6.15 + '@storybook/client-logger': 7.6.15 + '@storybook/core-events': 7.6.15 + '@storybook/csf': 0.1.7 '@storybook/global': 5.0.0 - '@storybook/types': 8.0.6 + '@storybook/types': 7.6.15 '@types/qs': 6.9.11 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 qs: 6.11.2 - tiny-invariant: 1.3.3 + synchronous-promise: 2.0.17 ts-dedent: 2.2.0 util-deprecate: 1.0.2 @@ -18987,11 +22081,11 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 - '@storybook/preview@8.0.1': {} + '@storybook/preview@8.1.4': {} '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.4.5)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)))': dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.5 endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.2.0 @@ -19003,17 +22097,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/react-dom-shim@7.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@storybook/react-dom-shim@8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/react-webpack5@8.0.1(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))': + '@storybook/react-webpack5@8.1.4(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))': dependencies: - '@storybook/builder-webpack5': 8.0.1(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) - '@storybook/preset-react-webpack': 8.0.1(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) - '@storybook/react': 8.0.1(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5) - '@types/node': 18.19.29 + '@storybook/builder-webpack5': 8.1.4(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(prettier@3.2.5)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) + '@storybook/preset-react-webpack': 8.1.4(@swc/core@1.4.8)(encoding@0.1.13)(esbuild@0.21.4)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) + '@storybook/react': 8.1.4(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5) + '@storybook/types': 8.1.4 + '@types/node': 18.19.34 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: @@ -19023,21 +22123,53 @@ snapshots: - '@swc/core' - encoding - esbuild + - prettier - supports-color - uglify-js - webpack-cli - '@storybook/react@8.0.1(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)': + '@storybook/react@7.6.15(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.5)': dependencies: - '@storybook/client-logger': 8.0.1 - '@storybook/docs-tools': 8.0.1(encoding@0.1.13) + '@storybook/client-logger': 7.6.15 + '@storybook/core-client': 7.6.15 + '@storybook/docs-tools': 7.6.15(encoding@0.1.13) '@storybook/global': 5.0.0 - '@storybook/preview-api': 8.0.1 - '@storybook/react-dom-shim': 8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/types': 8.0.1 + '@storybook/preview-api': 7.6.15 + '@storybook/react-dom-shim': 7.6.15(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/types': 7.6.15 '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 - '@types/node': 18.19.29 + '@types/node': 18.19.34 + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + acorn-walk: 7.2.0 + escodegen: 2.1.0 + html-tags: 3.3.1 + lodash: 4.17.21 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-element-to-jsx-string: 15.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + ts-dedent: 2.2.0 + type-fest: 2.19.0 + util-deprecate: 1.0.2 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - encoding + - supports-color + + '@storybook/react@8.1.4(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.4.5)': + dependencies: + '@storybook/client-logger': 8.1.4 + '@storybook/docs-tools': 8.1.4(encoding@0.1.13)(prettier@3.2.5) + '@storybook/global': 5.0.0 + '@storybook/preview-api': 8.1.4 + '@storybook/react-dom-shim': 8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/types': 8.1.4 + '@types/escodegen': 0.0.6 + '@types/estree': 0.0.51 + '@types/node': 18.19.34 acorn: 7.4.1 acorn-jsx: 5.3.2(acorn@7.4.1) acorn-walk: 7.2.0 @@ -19048,7 +22180,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.6.0 + semver: 7.6.2 ts-dedent: 2.2.0 type-fest: 2.19.0 util-deprecate: 1.0.2 @@ -19056,20 +22188,9 @@ snapshots: typescript: 5.4.5 transitivePeerDependencies: - encoding + - prettier - supports-color - '@storybook/router@8.0.1': - dependencies: - '@storybook/client-logger': 8.0.1 - memoizerific: 1.11.3 - qs: 6.11.2 - - '@storybook/router@8.0.6': - dependencies: - '@storybook/client-logger': 8.0.6 - memoizerific: 1.11.3 - qs: 6.11.2 - '@storybook/router@8.1.4': dependencies: '@storybook/client-logger': 8.1.4 @@ -19091,18 +22212,17 @@ snapshots: - prettier - supports-color - '@storybook/test@8.0.1(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1))': + '@storybook/test@8.1.4(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1))': dependencies: - '@storybook/client-logger': 8.0.1 - '@storybook/core-events': 8.0.1 - '@storybook/instrumenter': 8.0.1 - '@storybook/preview-api': 8.0.1 + '@storybook/client-logger': 8.1.4 + '@storybook/core-events': 8.1.4 + '@storybook/instrumenter': 8.1.4 + '@storybook/preview-api': 8.1.4 '@testing-library/dom': 9.3.4 '@testing-library/jest-dom': 6.4.2(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1)) '@testing-library/user-event': 14.5.2(@testing-library/dom@9.3.4) '@vitest/expect': 1.3.1 - '@vitest/spy': 1.3.1 - chai: 4.4.1 + '@vitest/spy': 1.6.0 util: 0.12.5 transitivePeerDependencies: - '@jest/globals' @@ -19111,26 +22231,6 @@ snapshots: - jest - vitest - '@storybook/theming@8.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) - '@storybook/client-logger': 8.0.1 - '@storybook/global': 5.0.0 - memoizerific: 1.11.3 - optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@storybook/theming@8.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) - '@storybook/client-logger': 8.0.6 - '@storybook/global': 5.0.0 - memoizerific: 1.11.3 - optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@storybook/theming@8.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) @@ -19141,15 +22241,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/types@8.0.1': - dependencies: - '@storybook/channels': 8.0.1 - '@types/express': 4.17.21 - file-system-cache: 2.3.0 - - '@storybook/types@8.0.6': + '@storybook/types@7.6.15': dependencies: - '@storybook/channels': 8.0.6 + '@storybook/channels': 7.6.15 + '@types/babel__core': 7.20.5 '@types/express': 4.17.21 file-system-cache: 2.3.0 @@ -19245,32 +22340,33 @@ snapshots: dependencies: '@tanstack/query-persist-client-core': 4.35.7 - '@tanstack/react-query-devtools@4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-query-devtools@4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@tanstack/match-sorter-utils': 8.8.4 - '@tanstack/react-query': 4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-query': 4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) superjson: 1.13.3 use-sync-external-store: 1.2.0(react@18.3.1) - '@tanstack/react-query-persist-client@4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@tanstack/react-query-persist-client@4.35.7(@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1))': dependencies: '@tanstack/query-persist-client-core': 4.35.7 - '@tanstack/react-query': 4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-query': 4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1) - '@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-query@4.35.7(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)': dependencies: '@tanstack/query-core': 4.35.7 react: 18.3.1 use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: react-dom: 18.3.1(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) '@testing-library/dom@9.3.4': dependencies: - '@babel/code-frame': 7.23.5 - '@babel/runtime': 7.23.9 + '@babel/code-frame': 7.24.7 + '@babel/runtime': 7.24.4 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -19281,7 +22377,7 @@ snapshots: '@testing-library/jest-dom@6.4.2(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1))': dependencies: '@adobe/css-tools': 4.3.2 - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 @@ -19618,6 +22714,8 @@ snapshots: '@types/filewriter@0.0.32': {} + '@types/find-cache-dir@3.2.1': {} + '@types/geojson@7946.0.13': {} '@types/get-params@0.1.2': {} @@ -19670,6 +22768,16 @@ snapshots: '@types/is-empty@1.2.3': {} + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + '@types/jsdom@21.1.3': dependencies: '@types/node': 20.12.12 @@ -19852,6 +22960,8 @@ snapshots: '@types/source-list-map@0.1.6': {} + '@types/stack-utils@2.0.3': {} + '@types/styled-components@5.1.34': dependencies: '@types/hoist-non-react-statics': 3.3.5 @@ -19920,6 +23030,16 @@ snapshots: dependencies: '@types/node': 20.12.12 + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@15.0.19': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@types/yargs@17.0.32': + dependencies: + '@types/yargs-parser': 21.0.3 + '@types/yauzl@2.10.0': dependencies: '@types/node': 20.12.12 @@ -20100,6 +23220,18 @@ snapshots: '@ungap/structured-clone@1.2.0': {} + '@urql/core@2.3.6(graphql@15.8.0)': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@15.8.0) + graphql: 15.8.0 + wonka: 4.0.15 + + '@urql/exchange-retry@0.3.0(graphql@15.8.0)': + dependencies: + '@urql/core': 2.3.6(graphql@15.8.0) + graphql: 15.8.0 + wonka: 4.0.15 + '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.12.12)(jsdom@22.1.0)(lightningcss@1.25.1)(terser@5.31.1))': dependencies: debug: 4.3.4(supports-color@5.5.0) @@ -20119,7 +23251,7 @@ snapshots: dependencies: '@vitest/spy': 1.3.1 '@vitest/utils': 1.3.1 - chai: 4.4.0 + chai: 4.4.1 '@vitest/expect@1.6.0': dependencies: @@ -20141,7 +23273,7 @@ snapshots: '@vitest/spy@1.3.1': dependencies: - tinyspy: 2.2.0 + tinyspy: 2.2.1 '@vitest/spy@1.6.0': dependencies: @@ -20363,6 +23495,10 @@ snapshots: optionalDependencies: webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.91.0) + '@xmldom/xmldom@0.7.13': {} + + '@xmldom/xmldom@0.8.10': {} + '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} @@ -20626,6 +23762,8 @@ snapshots: transitivePeerDependencies: - debug + anser@1.4.10: {} + anser@2.1.1: {} ansi-align@3.0.1: @@ -20634,8 +23772,20 @@ snapshots: ansi-colors@4.1.3: {} + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-fragments@0.2.1: + dependencies: + colorette: 1.4.0 + slice-ansi: 2.1.0 + strip-ansi: 5.2.0 + ansi-html-community@0.0.8: {} + ansi-regex@4.1.1: {} + ansi-regex@5.0.1: {} ansi-regex@6.0.1: {} @@ -20659,6 +23809,10 @@ snapshots: app-root-dir@1.0.2: {} + appdirsjs@1.2.7: {} + + application-config-path@0.1.1: {} + aproba@2.0.0: {} are-passive-events-supported@1.1.1: {} @@ -20676,6 +23830,8 @@ snapshots: arg@4.1.3: {} + arg@5.0.2: {} + argon2-browser@1.18.0: {} argparse@1.0.10: @@ -20696,11 +23852,6 @@ snapshots: dependencies: dequal: 2.0.3 - array-buffer-byte-length@1.0.0: - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.2 - array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -20782,6 +23933,8 @@ snapshots: arrify@1.0.1: {} + asap@2.0.6: {} + asn1.js@5.4.1: dependencies: bn.js: 4.12.0 @@ -20805,10 +23958,16 @@ snapshots: assertion-error@1.1.0: {} + ast-types@0.15.2: + dependencies: + tslib: 2.6.2 + ast-types@0.16.1: dependencies: tslib: 2.6.2 + astral-regex@1.0.0: {} + astring@1.8.6: {} async-retry@1.3.3: @@ -20924,6 +24083,8 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-react-native-web@0.19.12: {} + babel-plugin-styled-components@2.1.4(@babel/core@7.24.4)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)): dependencies: '@babel/helper-annotate-as-pure': 7.22.5 @@ -20935,6 +24096,28 @@ snapshots: transitivePeerDependencies: - '@babel/core' + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.4): + dependencies: + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.4) + transitivePeerDependencies: + - '@babel/core' + + babel-preset-expo@11.0.10(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4)): + dependencies: + '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.24.4) + '@babel/plugin-transform-export-namespace-from': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-object-rest-spread': 7.24.6(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.6(@babel/core@7.24.4) + '@babel/preset-react': 7.24.7(@babel/core@7.24.4) + '@babel/preset-typescript': 7.23.3(@babel/core@7.24.4) + '@react-native/babel-preset': 0.74.84(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + babel-plugin-react-native-web: 0.19.12 + react-refresh: 0.14.2 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - supports-color + babel-runtime@6.26.0: dependencies: core-js: 2.6.12 @@ -21079,10 +24262,22 @@ snapshots: widest-line: 4.0.1 wrap-ansi: 7.0.0 + bplist-creator@0.1.0: + dependencies: + stream-buffers: 2.2.0 + bplist-parser@0.2.0: dependencies: big-integer: 1.6.52 + bplist-parser@0.3.1: + dependencies: + big-integer: 1.6.52 + + bplist-parser@0.3.2: + dependencies: + big-integer: 1.6.52 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -21169,10 +24364,23 @@ snapshots: '@noble/hashes': 1.4.0 bs58: 5.0.0 + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-alloc-unsafe@1.1.0: {} + + buffer-alloc@1.2.0: + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + buffer-crc32@0.2.13: {} buffer-equal-constant-time@1.0.1: {} + buffer-fill@1.0.0: {} + buffer-from@1.1.2: {} buffer-xor@1.0.3: {} @@ -21187,6 +24395,8 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + builtins@1.0.3: {} + bundle-n-require@1.1.1: dependencies: esbuild: 0.20.2 @@ -21196,6 +24406,11 @@ snapshots: dependencies: run-applescript: 7.0.0 + bundle-require@4.2.1(esbuild@0.21.4): + dependencies: + esbuild: 0.21.4 + load-tsconfig: 0.2.5 + bunyan@1.8.15: optionalDependencies: dtrace-provider: 0.8.8 @@ -21233,16 +24448,31 @@ snapshots: minipass-collect: 1.0.2 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 8.0.1 + tar: 6.2.0 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + optional: true + + cacache@18.0.3: + dependencies: + '@npmcli/fs': 3.1.1 + fs-minipass: 3.0.3 + glob: 10.3.10 + lru-cache: 10.2.0 + minipass: 7.0.4 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 8.0.1 + ssri: 10.0.6 tar: 6.2.0 - unique-filename: 1.1.1 - transitivePeerDependencies: - - bluebird - optional: true + unique-filename: 3.0.0 cacheable-lookup@5.0.4: {} @@ -21276,6 +24506,16 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.1 + caller-callsite@2.0.0: + dependencies: + callsites: 2.0.0 + + caller-path@2.0.0: + dependencies: + caller-callsite: 2.0.0 + + callsites@2.0.0: {} + callsites@3.1.0: {} camel-case@4.1.2: @@ -21290,6 +24530,10 @@ snapshots: quick-lru: 6.1.2 type-fest: 2.19.0 + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + camelcase@7.0.1: {} camelize@1.0.1: {} @@ -21313,16 +24557,6 @@ snapshots: ccount@2.0.1: {} - chai@4.4.0: - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - chai@4.4.1: dependencies: assertion-error: 1.1.0 @@ -21365,6 +24599,8 @@ snapshots: character-reference-invalid@2.0.1: {} + charenc@0.0.2: {} + check-error@1.0.3: dependencies: get-func-name: 2.0.2 @@ -21417,6 +24653,15 @@ snapshots: transitivePeerDependencies: - supports-color + chrome-launcher@0.15.2: + dependencies: + '@types/node': 20.12.12 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + transitivePeerDependencies: + - supports-color + chrome-trace-event@1.0.3: {} chrome-webstore-upload-cli@2.2.2: @@ -21432,6 +24677,8 @@ snapshots: dependencies: got: 11.8.6 + ci-info@2.0.0: {} + ci-info@3.9.0: {} ci-info@4.0.0: {} @@ -21473,6 +24720,10 @@ snapshots: cli-boxes@3.0.0: {} + cli-cursor@2.1.0: + dependencies: + restore-cursor: 2.0.0 + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -21489,6 +24740,12 @@ snapshots: optionalDependencies: '@colors/colors': 1.5.0 + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -21507,6 +24764,8 @@ snapshots: clone@1.0.4: {} + clone@2.1.2: {} + clsx@2.1.0: {} code-block-writer@12.0.0: {} @@ -21546,6 +24805,8 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + colorette@1.4.0: {} + colorette@2.0.19: {} colorette@2.0.20: {} @@ -21561,6 +24822,8 @@ snapshots: comma-separated-tokens@2.0.3: {} + command-exists@1.2.9: {} + commander@10.0.1: {} commander@12.0.0: {} @@ -21571,6 +24834,8 @@ snapshots: dependencies: graceful-readlink: 1.0.1 + commander@4.1.1: {} + commander@6.2.1: {} commander@7.2.0: {} @@ -21590,6 +24855,8 @@ snapshots: compare-versions@6.1.0: {} + component-type@1.2.2: {} + compressible@2.0.18: dependencies: mime-db: 1.52.0 @@ -21662,6 +24929,15 @@ snapshots: connect-history-api-fallback@2.0.0: {} + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + consola@3.2.3: {} console-control-strings@1.1.0: {} @@ -21727,6 +25003,13 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + cosmiconfig@5.2.1: + dependencies: + import-fresh: 2.0.0 + is-directory: 0.3.1 + js-yaml: 3.14.1 + parse-json: 4.0.0 + cosmiconfig@6.0.0: dependencies: '@types/parse-json': 4.0.2 @@ -21802,6 +25085,14 @@ snapshots: dependencies: buffer: 5.7.1 + cross-spawn@6.0.5: + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -21812,6 +25103,8 @@ snapshots: dependencies: '@types/node': 17.0.45 + crypt@0.0.2: {} + crypto-browserify@3.12.0: dependencies: browserify-cipher: 1.0.1 @@ -21826,6 +25119,8 @@ snapshots: randombytes: 2.1.0 randomfill: 1.0.4 + crypto-random-string@1.0.0: {} + crypto-random-string@2.0.0: {} crypto-random-string@4.0.0: @@ -21855,7 +25150,7 @@ snapshots: postcss-modules-scope: 3.2.0(postcss@8.4.38) postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 - semver: 7.6.0 + semver: 7.6.2 optionalDependencies: webpack: 5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) @@ -22088,6 +25383,8 @@ snapshots: '@types/d3': 7.4.3 d3: 7.8.5 + dag-map@1.0.2: {} + dashdash@1.14.1: dependencies: assert-plus: 1.0.0 @@ -22132,6 +25429,10 @@ snapshots: dependencies: ms: 2.0.0 + debug@3.2.7: + dependencies: + ms: 2.1.3 + debug@4.3.4(supports-color@5.5.0): dependencies: ms: 2.1.2 @@ -22169,24 +25470,24 @@ snapshots: deep-equal@2.2.3: dependencies: - array-buffer-byte-length: 1.0.0 + array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 es-get-iterator: 1.1.3 get-intrinsic: 1.2.4 is-arguments: 1.1.1 - is-array-buffer: 3.0.2 + is-array-buffer: 3.0.4 is-date-object: 1.0.5 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 isarray: 2.0.5 object-is: 1.1.5 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - side-channel: 1.0.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.14 + which-collection: 1.0.2 + which-typed-array: 1.1.15 deep-extend@0.6.0: {} @@ -22212,6 +25513,11 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.0 + default-gateway@4.2.0: + dependencies: + execa: 1.0.0 + ip-regex: 2.1.0 + default-gateway@6.0.3: dependencies: execa: 5.1.1 @@ -22269,6 +25575,8 @@ snapshots: delegates@1.0.0: {} + denodeify@1.2.1: {} + depd@1.1.2: {} depd@2.0.0: {} @@ -22452,6 +25760,10 @@ snapshots: dotenv-expand@10.0.0: {} + dotenv-expand@11.0.6: + dependencies: + dotenv: 16.4.5 + dotenv-webpack@8.1.0(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))): dependencies: dotenv-defaults: 2.0.2 @@ -22582,10 +25894,14 @@ snapshots: entities@4.5.0: {} + env-editor@0.4.2: {} + env-paths@2.2.1: {} envinfo@7.11.0: {} + eol@0.9.1: {} + err-code@2.0.3: optional: true @@ -22597,6 +25913,11 @@ snapshots: dependencies: stackframe: 1.3.4 + errorhandler@1.5.1: + dependencies: + accepts: 1.3.8 + escape-html: 1.0.3 + es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -22658,8 +25979,8 @@ snapshots: get-intrinsic: 1.2.4 has-symbols: 1.0.3 is-arguments: 1.1.1 - is-map: 2.0.2 - is-set: 2.0.2 + is-map: 2.0.3 + is-set: 2.0.3 is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 @@ -22683,6 +26004,8 @@ snapshots: es-module-lexer@1.4.1: {} + es-module-lexer@1.5.3: {} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 @@ -22726,13 +26049,45 @@ snapshots: esbuild-plugin-alias@0.2.1: {} + esbuild-register@3.5.0(esbuild@0.18.20): + dependencies: + debug: 4.3.5 + esbuild: 0.18.20 + transitivePeerDependencies: + - supports-color + esbuild-register@3.5.0(esbuild@0.20.2): dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.5 esbuild: 0.20.2 transitivePeerDependencies: - supports-color + esbuild@0.18.20: + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + esbuild@0.20.2: optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 @@ -22795,6 +26150,8 @@ snapshots: escape-string-regexp@1.0.5: {} + escape-string-regexp@2.0.0: {} + escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} @@ -23033,6 +26390,18 @@ snapshots: md5.js: 1.3.5 safe-buffer: 5.2.1 + exec-async@2.2.0: {} + + execa@1.0.0: + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + execa@4.1.0: dependencies: cross-spawn: 7.0.3 @@ -23069,6 +26438,82 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + expo-asset@10.0.6(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)): + dependencies: + '@react-native/assets-registry': 0.74.84 + expo: 51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + expo-constants: 16.0.1(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) + invariant: 2.2.4 + md5-file: 3.2.3 + transitivePeerDependencies: + - supports-color + + expo-constants@16.0.1(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)): + dependencies: + '@expo/config': 9.0.2 + expo: 51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + transitivePeerDependencies: + - supports-color + + expo-file-system@17.0.1(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)): + dependencies: + expo: 51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + + expo-font@12.0.5(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)): + dependencies: + expo: 51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + fontfaceobserver: 2.3.0 + + expo-keep-awake@13.0.2(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)): + dependencies: + expo: 51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + + expo-modules-autolinking@1.11.1: + dependencies: + chalk: 4.1.2 + commander: 7.2.0 + fast-glob: 3.3.2 + find-up: 5.0.0 + fs-extra: 9.1.0 + + expo-modules-core@1.12.11: + dependencies: + invariant: 2.2.4 + + expo-splash-screen@0.27.4(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)): + dependencies: + '@expo/prebuild-config': 7.0.3(encoding@0.1.13)(expo-modules-autolinking@1.11.1) + expo: 51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - expo-modules-autolinking + - supports-color + + expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13): + dependencies: + '@babel/runtime': 7.24.4 + '@expo/cli': 0.18.13(encoding@0.1.13)(expo-modules-autolinking@1.11.1) + '@expo/config': 9.0.2 + '@expo/config-plugins': 8.0.4 + '@expo/metro-config': 0.18.4 + '@expo/vector-icons': 14.0.0 + babel-preset-expo: 11.0.10(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + expo-asset: 10.0.6(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) + expo-file-system: 17.0.1(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) + expo-font: 12.0.5(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) + expo-keep-awake: 13.0.2(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) + expo-modules-autolinking: 1.11.1 + expo-modules-core: 1.12.11 + fbemitter: 3.0.0(encoding@0.1.13) + whatwg-url-without-unicode: 8.0.0-3 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - supports-color + - utf-8-validate + express@4.19.2: dependencies: accepts: 1.3.8 @@ -23145,6 +26590,10 @@ snapshots: fast-redact@3.3.0: {} + fast-xml-parser@4.4.0: + dependencies: + strnum: 1.0.5 + fastest-levenshtein@1.0.16: {} fastq@1.16.0: @@ -23155,6 +26604,30 @@ snapshots: dependencies: websocket-driver: 0.7.4 + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fbemitter@3.0.0(encoding@0.1.13): + dependencies: + fbjs: 3.0.5(encoding@0.1.13) + transitivePeerDependencies: + - encoding + + fbjs-css-vars@1.0.2: {} + + fbjs@3.0.5(encoding@0.1.13): + dependencies: + cross-fetch: 3.1.8(encoding@0.1.13) + fbjs-css-vars: 1.0.2 + loose-envify: 1.4.0 + object-assign: 4.1.1 + promise: 7.3.1 + setimmediate: 1.0.5 + ua-parser-js: 1.0.38 + transitivePeerDependencies: + - encoding + fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -23164,6 +26637,8 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 + fetch-retry@4.1.1: {} + fetch-retry@5.0.6: {} figures@6.1.0: @@ -23201,6 +26676,18 @@ snapshots: dependencies: to-regex-range: 5.0.1 + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + finalhandler@1.2.0: dependencies: debug: 2.6.9 @@ -23251,6 +26738,10 @@ snapshots: micromatch: 4.0.5 pkg-dir: 4.2.0 + find-yarn-workspace-root@2.0.0: + dependencies: + micromatch: 4.0.5 + firefox-profile@4.3.2: dependencies: adm-zip: 0.5.10 @@ -23271,10 +26762,16 @@ snapshots: flatted@3.3.1: {} + flow-enums-runtime@0.0.6: {} + + flow-parser@0.206.0: {} + flow-parser@0.225.1: {} follow-redirects@1.15.6: {} + fontfaceobserver@2.3.0: {} + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -23308,7 +26805,7 @@ snapshots: fork-ts-checker-webpack-plugin@8.0.0(typescript@5.4.5)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))): dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.7 chalk: 4.1.2 chokidar: 3.6.0 cosmiconfig: 7.1.0 @@ -23318,7 +26815,7 @@ snapshots: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.6.0 + semver: 7.6.2 tapable: 2.2.1 typescript: 5.4.5 webpack: 5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) @@ -23337,6 +26834,12 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 + form-data@3.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + form-data@4.0.0: dependencies: asynckit: 0.4.0 @@ -23363,6 +26866,8 @@ snapshots: fraction.js@4.3.7: {} + freeport-async@2.0.0: {} + fresh@0.5.2: {} from@0.1.7: {} @@ -23399,6 +26904,13 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 + fs-extra@9.0.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 1.0.0 + fs-extra@9.0.1: dependencies: at-least-node: 1.0.0 @@ -23417,6 +26929,10 @@ snapshots: dependencies: minipass: 3.3.6 + fs-minipass@3.0.3: + dependencies: + minipass: 7.0.4 + fs-monkey@1.0.5: {} fs.realpath@1.0.0: {} @@ -23504,8 +27020,14 @@ snapshots: get-params@0.1.2: {} + get-port@3.2.0: {} + get-port@7.0.0: {} + get-stream@4.1.0: + dependencies: + pump: 3.0.0 + get-stream@5.2.0: dependencies: pump: 3.0.0 @@ -23526,6 +27048,8 @@ snapshots: get-value@2.0.6: {} + getenv@1.0.0: {} + getopts@2.3.0: {} getpass@0.1.7: @@ -23580,6 +27104,15 @@ snapshots: path-is-absolute: 1.0.1 optional: true + glob@7.1.6: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -23602,7 +27135,7 @@ snapshots: es6-error: 4.1.1 matcher: 3.0.0 roarr: 2.15.4 - semver: 7.6.0 + semver: 7.6.2 serialize-error: 7.0.1 optional: true @@ -23700,6 +27233,13 @@ snapshots: graphemer@1.4.0: {} + graphql-tag@2.12.6(graphql@15.8.0): + dependencies: + graphql: 15.8.0 + tslib: 2.6.2 + + graphql@15.8.0: {} + graphql@16.8.1: {} growly@1.3.0: {} @@ -23839,6 +27379,34 @@ snapshots: he@1.2.0: {} + hermes-estree@0.15.0: {} + + hermes-estree@0.18.2: {} + + hermes-estree@0.19.1: {} + + hermes-estree@0.20.1: {} + + hermes-parser@0.15.0: + dependencies: + hermes-estree: 0.15.0 + + hermes-parser@0.18.2: + dependencies: + hermes-estree: 0.18.2 + + hermes-parser@0.19.1: + dependencies: + hermes-estree: 0.19.1 + + hermes-parser@0.20.1: + dependencies: + hermes-estree: 0.20.1 + + hermes-profile-transformer@0.0.6: + dependencies: + source-map: 0.7.4 + hex-rgba@1.0.2: {} hmac-drbg@1.0.1: @@ -23855,6 +27423,10 @@ snapshots: hosted-git-info@2.8.9: {} + hosted-git-info@3.0.8: + dependencies: + lru-cache: 6.0.0 + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 @@ -24048,6 +27620,11 @@ snapshots: immutable@4.3.6: {} + import-fresh@2.0.0: + dependencies: + caller-path: 2.0.0 + resolve-from: 3.0.0 + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 @@ -24090,11 +27667,10 @@ snapshots: inline-style-parser@0.2.2: {} - internal-slot@1.0.6: + internal-ip@4.3.0: dependencies: - get-intrinsic: 1.2.4 - hasown: 2.0.2 - side-channel: 1.0.5 + default-gateway: 4.2.0 + ipaddr.js: 1.9.1 internal-slot@1.0.7: dependencies: @@ -24114,6 +27690,8 @@ snapshots: invert-kv@3.0.1: {} + ip-regex@2.1.0: {} + ip@2.0.1: {} ipaddr.js@1.9.1: {} @@ -24145,12 +27723,6 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-array-buffer@3.0.2: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-typed-array: 1.1.13 - is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 @@ -24177,6 +27749,8 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-buffer@1.1.6: {} + is-callable@1.2.7: {} is-ci@3.0.1: @@ -24201,6 +27775,8 @@ snapshots: is-deflate@1.0.0: {} + is-directory@0.3.1: {} + is-docker@2.2.1: {} is-docker@3.0.0: {} @@ -24209,17 +27785,25 @@ snapshots: is-extendable@0.1.1: {} + is-extglob@1.0.0: {} + is-extglob@2.1.1: {} is-finalizationregistry@1.0.2: dependencies: call-bind: 1.0.7 + is-fullwidth-code-point@2.0.0: {} + is-fullwidth-code-point@3.0.0: {} is-generator-function@1.0.10: dependencies: - has-tostringtag: 1.0.2 + has-tostringtag: 1.0.2 + + is-glob@2.0.1: + dependencies: + is-extglob: 1.0.0 is-glob@4.0.3: dependencies: @@ -24249,11 +27833,13 @@ snapshots: is-interactive@2.0.0: {} + is-invalid-path@0.1.0: + dependencies: + is-glob: 2.0.1 + is-lambda@1.0.1: optional: true - is-map@2.0.2: {} - is-map@2.0.3: {} is-mergeable-object@1.1.1: {} @@ -24316,18 +27902,14 @@ snapshots: is-root@2.1.0: {} - is-set@2.0.2: {} - is-set@2.0.3: {} - is-shared-array-buffer@1.0.2: - dependencies: - call-bind: 1.0.7 - is-shared-array-buffer@1.0.3: dependencies: call-bind: 1.0.7 + is-stream@1.1.0: {} + is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -24354,7 +27936,9 @@ snapshots: is-utf8@0.2.1: {} - is-weakmap@2.0.1: {} + is-valid-path@0.1.1: + dependencies: + is-invalid-path: 0.1.0 is-weakmap@2.0.2: {} @@ -24362,11 +27946,6 @@ snapshots: dependencies: call-bind: 1.0.7 - is-weakset@2.0.2: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-weakset@2.0.3: dependencies: call-bind: 1.0.7 @@ -24374,6 +27953,8 @@ snapshots: is-what@4.1.16: {} + is-wsl@1.1.0: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -24461,18 +28042,84 @@ snapshots: jed@1.1.1: {} + jest-environment-node@29.7.0: + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.12.12 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-message-util@29.7.0: + dependencies: + '@babel/code-frame': 7.24.7 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.12.12 + jest-util: 29.7.0 + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.12.12 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + jest-worker@27.5.1: dependencies: '@types/node': 20.12.12 merge-stream: 2.0.0 supports-color: 8.1.1 + jest-worker@29.7.0: + dependencies: + '@types/node': 20.12.12 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jimp-compact@0.16.1: {} + jiti@1.21.0: {} jiti@1.21.4: {} jju@1.4.0: {} + joi@17.13.1: + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + + join-component@1.1.0: {} + jose@4.13.1: {} jotai-redux@0.2.1(jotai@2.2.1(react@18.3.1)): @@ -24483,6 +28130,8 @@ snapshots: optionalDependencies: react: 18.3.1 + joycon@3.1.1: {} + js-cookie@3.0.1: {} js-tokens@4.0.0: {} @@ -24504,6 +28153,35 @@ snapshots: jsbn@0.1.1: {} + jsc-android@250231.0.0: {} + + jsc-safe-url@0.2.4: {} + + jscodeshift@0.14.0(@babel/preset-env@7.24.6(@babel/core@7.24.4)): + dependencies: + '@babel/core': 7.24.4 + '@babel/parser': 7.24.7 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.4) + '@babel/preset-env': 7.24.6(@babel/core@7.24.4) + '@babel/preset-flow': 7.23.3(@babel/core@7.24.4) + '@babel/preset-typescript': 7.23.3(@babel/core@7.24.4) + '@babel/register': 7.23.7(@babel/core@7.24.4) + babel-core: 7.0.0-bridge.0(@babel/core@7.24.4) + chalk: 4.1.2 + flow-parser: 0.225.1 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + neo-async: 2.6.2 + node-dir: 0.1.17 + recast: 0.21.5 + temp: 0.8.4 + write-file-atomic: 2.4.3 + transitivePeerDependencies: + - supports-color + jscodeshift@0.15.1(@babel/preset-env@7.24.6(@babel/core@7.24.4)): dependencies: '@babel/core': 7.24.4 @@ -24571,6 +28249,8 @@ snapshots: dependencies: fast-deep-equal: 3.1.3 + json-parse-better-errors@1.0.2: {} + json-parse-even-better-errors@2.3.1: {} json-parse-even-better-errors@3.0.1: {} @@ -24579,6 +28259,17 @@ snapshots: dependencies: lodash: 4.17.21 + json-schema-deref-sync@0.13.0: + dependencies: + clone: 2.1.2 + dag-map: 1.0.2 + is-valid-path: 0.1.1 + lodash: 4.17.21 + md5: 2.2.1 + memory-cache: 0.2.0 + traverse: 0.6.9 + valid-url: 1.0.9 + json-schema-merge-allof@0.6.0: dependencies: compute-lcm: 1.1.2 @@ -24764,12 +28455,18 @@ snapshots: transitivePeerDependencies: - supports-color + lightningcss-darwin-arm64@1.19.0: + optional: true + lightningcss-darwin-arm64@1.23.0: optional: true lightningcss-darwin-arm64@1.25.1: optional: true + lightningcss-darwin-x64@1.19.0: + optional: true + lightningcss-darwin-x64@1.23.0: optional: true @@ -24782,42 +28479,73 @@ snapshots: lightningcss-freebsd-x64@1.25.1: optional: true + lightningcss-linux-arm-gnueabihf@1.19.0: + optional: true + lightningcss-linux-arm-gnueabihf@1.23.0: optional: true lightningcss-linux-arm-gnueabihf@1.25.1: optional: true + lightningcss-linux-arm64-gnu@1.19.0: + optional: true + lightningcss-linux-arm64-gnu@1.23.0: optional: true lightningcss-linux-arm64-gnu@1.25.1: optional: true + lightningcss-linux-arm64-musl@1.19.0: + optional: true + lightningcss-linux-arm64-musl@1.23.0: optional: true lightningcss-linux-arm64-musl@1.25.1: optional: true + lightningcss-linux-x64-gnu@1.19.0: + optional: true + lightningcss-linux-x64-gnu@1.23.0: optional: true lightningcss-linux-x64-gnu@1.25.1: optional: true + lightningcss-linux-x64-musl@1.19.0: + optional: true + lightningcss-linux-x64-musl@1.23.0: optional: true lightningcss-linux-x64-musl@1.25.1: optional: true + lightningcss-win32-x64-msvc@1.19.0: + optional: true + lightningcss-win32-x64-msvc@1.23.0: optional: true lightningcss-win32-x64-msvc@1.25.1: optional: true + lightningcss@1.19.0: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.19.0 + lightningcss-darwin-x64: 1.19.0 + lightningcss-linux-arm-gnueabihf: 1.19.0 + lightningcss-linux-arm64-gnu: 1.19.0 + lightningcss-linux-arm64-musl: 1.19.0 + lightningcss-linux-x64-gnu: 1.19.0 + lightningcss-linux-x64-musl: 1.19.0 + lightningcss-win32-x64-msvc: 1.19.0 + lightningcss@1.23.0: dependencies: detect-libc: 1.0.3 @@ -24849,6 +28577,8 @@ snapshots: lil-fp@1.4.5: {} + lilconfig@3.1.2: {} + lines-and-columns@1.2.4: {} lines-and-columns@2.0.4: {} @@ -24862,6 +28592,8 @@ snapshots: '@npmcli/config': 8.1.0 import-meta-resolve: 4.0.0 + load-tsconfig@0.2.5: {} + load-yaml-file@0.2.0: dependencies: graceful-fs: 4.2.11 @@ -24937,12 +28669,18 @@ snapshots: lodash.sortby@4.7.0: {} + lodash.throttle@4.1.1: {} + lodash.uniq@4.5.0: {} lodash.uniqby@4.7.0: {} lodash@4.17.21: {} + log-symbols@2.2.0: + dependencies: + chalk: 2.4.2 + log-symbols@4.1.0: dependencies: chalk: 4.1.2 @@ -24953,6 +28691,12 @@ snapshots: chalk: 5.3.0 is-unicode-supported: 1.3.0 + logkitty@0.7.1: + dependencies: + ansi-fragments: 0.2.1 + dayjs: 1.11.8 + yargs: 15.4.1 + loglevel@1.8.1: {} long@4.0.0: {} @@ -25053,6 +28797,10 @@ snapshots: - supports-color optional: true + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + map-age-cleaner@0.1.3: dependencies: p-defer: 1.0.0 @@ -25085,12 +28833,30 @@ snapshots: escape-string-regexp: 4.0.0 optional: true + md5-file@3.2.3: + dependencies: + buffer-alloc: 1.2.0 + md5.js@1.3.5: dependencies: hash-base: 3.1.0 inherits: 2.0.4 safe-buffer: 5.2.1 + md5@2.2.1: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + + md5hex@1.0.0: {} + mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.3 @@ -25232,88 +28998,426 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-phrasing@4.0.0: + mdast-util-phrasing@4.0.0: + dependencies: + '@types/mdast': 4.0.3 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + + mdast-util-to-markdown@2.1.0: + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.0.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@2.0.0: {} + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.3 + + media-typer@0.3.0: {} + + mem@5.1.1: + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 2.1.0 + p-is-promise: 2.1.0 + + memfs@3.6.0: + dependencies: + fs-monkey: 1.0.5 + + memoize-one@5.2.1: {} + + memoize-one@6.0.0: {} + + memoize@10.0.0: + dependencies: + mimic-function: 5.0.1 + + memoizerific@1.11.3: + dependencies: + map-or-similar: 1.5.0 + + memory-cache@0.2.0: {} + + meow@11.0.0: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 8.0.2 + decamelize: 6.0.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 4.0.1 + read-pkg-up: 9.1.0 + redent: 4.0.0 + trim-newlines: 4.1.1 + type-fest: 3.13.1 + yargs-parser: 21.1.1 + + merge-anything@5.1.7: + dependencies: + is-what: 4.1.16 + + merge-descriptors@1.0.1: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + metro-babel-transformer@0.80.5: + dependencies: + '@babel/core': 7.24.4 + hermes-parser: 0.18.2 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-babel-transformer@0.80.9: + dependencies: + '@babel/core': 7.24.4 + hermes-parser: 0.20.1 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-cache-key@0.80.5: {} + + metro-cache-key@0.80.9: {} + + metro-cache@0.80.5: + dependencies: + metro-core: 0.80.5 + rimraf: 3.0.2 + + metro-cache@0.80.9: + dependencies: + metro-core: 0.80.9 + rimraf: 3.0.2 + + metro-config@0.80.5(encoding@0.1.13): + dependencies: + connect: 3.7.0 + cosmiconfig: 5.2.1 + jest-validate: 29.7.0 + metro: 0.80.5(encoding@0.1.13) + metro-cache: 0.80.5 + metro-core: 0.80.5 + metro-runtime: 0.80.5 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + metro-config@0.80.9(encoding@0.1.13): + dependencies: + connect: 3.7.0 + cosmiconfig: 5.2.1 + jest-validate: 29.7.0 + metro: 0.80.9(encoding@0.1.13) + metro-cache: 0.80.9 + metro-core: 0.80.9 + metro-runtime: 0.80.9 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + metro-core@0.80.5: + dependencies: + lodash.throttle: 4.1.1 + metro-resolver: 0.80.5 + + metro-core@0.80.9: + dependencies: + lodash.throttle: 4.1.1 + metro-resolver: 0.80.9 + + metro-file-map@0.80.5: + dependencies: + anymatch: 3.1.3 + debug: 2.6.9 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.5 + node-abort-controller: 3.1.1 + nullthrows: 1.1.1 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - supports-color + + metro-file-map@0.80.9: + dependencies: + anymatch: 3.1.3 + debug: 2.6.9 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.5 + node-abort-controller: 3.1.1 + nullthrows: 1.1.1 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - supports-color + + metro-minify-terser@0.80.5: dependencies: - '@types/mdast': 4.0.3 - unist-util-is: 6.0.0 + terser: 5.31.1 - mdast-util-to-hast@13.1.0: + metro-minify-terser@0.80.9: dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.3 - '@ungap/structured-clone': 1.2.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.0 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.1 + terser: 5.31.1 - mdast-util-to-markdown@2.1.0: - dependencies: - '@types/mdast': 4.0.3 - '@types/unist': 3.0.2 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.0.0 - mdast-util-to-string: 4.0.0 - micromark-util-decode-string: 2.0.0 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 + metro-resolver@0.80.5: {} - mdast-util-to-string@2.0.0: {} + metro-resolver@0.80.9: {} - mdast-util-to-string@4.0.0: + metro-runtime@0.80.5: dependencies: - '@types/mdast': 4.0.3 - - media-typer@0.3.0: {} + '@babel/runtime': 7.24.4 - mem@5.1.1: + metro-runtime@0.80.9: dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 2.1.0 - p-is-promise: 2.1.0 + '@babel/runtime': 7.24.4 - memfs@3.6.0: + metro-source-map@0.80.5: dependencies: - fs-monkey: 1.0.5 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + invariant: 2.2.4 + metro-symbolicate: 0.80.5 + nullthrows: 1.1.1 + ob1: 0.80.5 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color - memoize-one@6.0.0: {} + metro-source-map@0.80.9: + dependencies: + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + invariant: 2.2.4 + metro-symbolicate: 0.80.9 + nullthrows: 1.1.1 + ob1: 0.80.9 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color - memoize@10.0.0: + metro-symbolicate@0.80.5: dependencies: - mimic-function: 5.0.1 + invariant: 2.2.4 + metro-source-map: 0.80.5 + nullthrows: 1.1.1 + source-map: 0.5.7 + through2: 2.0.5 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color - memoizerific@1.11.3: + metro-symbolicate@0.80.9: dependencies: - map-or-similar: 1.5.0 + invariant: 2.2.4 + metro-source-map: 0.80.9 + nullthrows: 1.1.1 + source-map: 0.5.7 + through2: 2.0.5 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color - meow@11.0.0: + metro-transform-plugins@0.80.5: dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 8.0.2 - decamelize: 6.0.0 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 4.0.1 - read-pkg-up: 9.1.0 - redent: 4.0.0 - trim-newlines: 4.1.1 - type-fest: 3.13.1 - yargs-parser: 21.1.1 + '@babel/core': 7.24.4 + '@babel/generator': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color - merge-anything@5.1.7: + metro-transform-plugins@0.80.9: dependencies: - is-what: 4.1.16 + '@babel/core': 7.24.4 + '@babel/generator': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color - merge-descriptors@1.0.1: {} + metro-transform-worker@0.80.5(encoding@0.1.13): + dependencies: + '@babel/core': 7.24.4 + '@babel/generator': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + metro: 0.80.5(encoding@0.1.13) + metro-babel-transformer: 0.80.5 + metro-cache: 0.80.5 + metro-cache-key: 0.80.5 + metro-minify-terser: 0.80.5 + metro-source-map: 0.80.5 + metro-transform-plugins: 0.80.5 + nullthrows: 1.1.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate - merge-stream@2.0.0: {} + metro-transform-worker@0.80.9(encoding@0.1.13): + dependencies: + '@babel/core': 7.24.4 + '@babel/generator': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + metro: 0.80.9(encoding@0.1.13) + metro-babel-transformer: 0.80.9 + metro-cache: 0.80.9 + metro-cache-key: 0.80.9 + metro-minify-terser: 0.80.9 + metro-source-map: 0.80.9 + metro-transform-plugins: 0.80.9 + nullthrows: 1.1.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate - merge2@1.4.1: {} + metro@0.80.5(encoding@0.1.13): + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/core': 7.24.4 + '@babel/generator': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + accepts: 1.3.8 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 2.6.9 + denodeify: 1.2.1 + error-stack-parser: 2.1.4 + graceful-fs: 4.2.11 + hermes-parser: 0.18.2 + image-size: 1.1.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.80.5 + metro-cache: 0.80.5 + metro-cache-key: 0.80.5 + metro-config: 0.80.5(encoding@0.1.13) + metro-core: 0.80.5 + metro-file-map: 0.80.5 + metro-resolver: 0.80.5 + metro-runtime: 0.80.5 + metro-source-map: 0.80.5 + metro-symbolicate: 0.80.5 + metro-transform-plugins: 0.80.5 + metro-transform-worker: 0.80.5(encoding@0.1.13) + mime-types: 2.1.35 + node-fetch: 2.7.0(encoding@0.1.13) + nullthrows: 1.1.1 + rimraf: 3.0.2 + serialize-error: 2.1.0 + source-map: 0.5.7 + strip-ansi: 6.0.1 + throat: 5.0.0 + ws: 8.17.1 + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate - methods@1.1.2: {} + metro@0.80.9(encoding@0.1.13): + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/core': 7.24.4 + '@babel/generator': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + accepts: 1.3.8 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 2.6.9 + denodeify: 1.2.1 + error-stack-parser: 2.1.4 + graceful-fs: 4.2.11 + hermes-parser: 0.20.1 + image-size: 1.1.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.80.9 + metro-cache: 0.80.9 + metro-cache-key: 0.80.9 + metro-config: 0.80.9(encoding@0.1.13) + metro-core: 0.80.9 + metro-file-map: 0.80.9 + metro-resolver: 0.80.9 + metro-runtime: 0.80.9 + metro-source-map: 0.80.9 + metro-symbolicate: 0.80.9 + metro-transform-plugins: 0.80.9 + metro-transform-worker: 0.80.9(encoding@0.1.13) + mime-types: 2.1.35 + node-fetch: 2.7.0(encoding@0.1.13) + nullthrows: 1.1.1 + rimraf: 3.0.2 + serialize-error: 2.1.0 + source-map: 0.5.7 + strip-ansi: 6.0.1 + throat: 5.0.0 + ws: 8.17.1 + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate micro-packed@0.3.2: dependencies: @@ -25616,6 +29720,10 @@ snapshots: mime@1.6.0: {} + mime@2.6.0: {} + + mimic-fn@1.2.0: {} + mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -25671,6 +29779,10 @@ snapshots: minipass: 3.3.6 optional: true + minipass-collect@2.0.1: + dependencies: + minipass: 7.0.4 + minipass-fetch@1.4.1: dependencies: minipass: 3.3.6 @@ -25683,12 +29795,10 @@ snapshots: minipass-flush@1.0.5: dependencies: minipass: 3.3.6 - optional: true minipass-pipeline@1.2.4: dependencies: minipass: 3.3.6 - optional: true minipass-sized@1.0.3: dependencies: @@ -25715,7 +29825,6 @@ snapshots: mkdirp@0.5.6: dependencies: minimist: 1.2.8 - optional: true mkdirp@1.0.4: {} @@ -25723,13 +29832,6 @@ snapshots: mkdirp@3.0.1: {} - mlly@1.4.2: - dependencies: - acorn: 8.11.3 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.3.2 - mlly@1.6.1: dependencies: acorn: 8.11.3 @@ -25803,15 +29905,21 @@ snapshots: neo-async@2.6.2: {} + nested-error-stacks@2.0.1: {} + new-date@1.0.3: dependencies: '@segment/isodate': 1.0.3 + nice-try@1.0.5: {} + no-case@3.0.4: dependencies: lower-case: 2.0.2 tslib: 2.6.2 + nocache@3.0.4: {} + node-abort-controller@3.1.1: {} node-addon-api@4.3.0: {} @@ -25857,7 +29965,7 @@ snapshots: nopt: 5.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.6.0 + semver: 7.6.2 tar: 6.2.0 which: 2.0.2 transitivePeerDependencies: @@ -25865,6 +29973,8 @@ snapshots: - supports-color optional: true + node-int64@0.4.0: {} + node-notifier@10.0.1: dependencies: growly: 1.3.0 @@ -25876,6 +29986,8 @@ snapshots: node-releases@2.0.14: {} + node-stream-zip@1.15.0: {} + nopt@5.0.0: dependencies: abbrev: 1.1.1 @@ -25915,6 +30027,17 @@ snapshots: npm-normalize-package-bin@3.0.1: {} + npm-package-arg@7.0.0: + dependencies: + hosted-git-info: 3.0.8 + osenv: 0.1.5 + semver: 5.7.2 + validate-npm-package-name: 3.0.0 + + npm-run-path@2.0.2: + dependencies: + path-key: 2.0.1 + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -25942,6 +30065,8 @@ snapshots: dependencies: boolbase: 1.0.0 + nullthrows@1.1.1: {} + nwsapi@2.2.7: {} nypm@0.3.4: @@ -25953,6 +30078,10 @@ snapshots: oauth-sign@0.9.0: {} + ob1@0.80.5: {} + + ob1@0.80.9: {} + obj-case@0.2.1: {} object-assign@4.1.1: {} @@ -26030,6 +30159,10 @@ snapshots: dependencies: wrappy: 1.0.2 + onetime@2.0.1: + dependencies: + mimic-fn: 1.2.0 + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 @@ -26045,6 +30178,15 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 + open@6.4.0: + dependencies: + is-wsl: 1.1.0 + + open@7.4.2: + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -26062,6 +30204,15 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + ora@3.4.0: + dependencies: + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-spinners: 2.9.2 + log-symbols: 2.2.0 + strip-ansi: 5.2.0 + wcwidth: 1.0.1 + ora@5.4.1: dependencies: bl: 4.1.0 @@ -26086,6 +30237,8 @@ snapshots: strip-ansi: 7.1.0 wcwidth: 1.0.1 + os-homedir@1.0.2: {} + os-locale@5.0.0: dependencies: execa: 4.1.0 @@ -26094,6 +30247,13 @@ snapshots: os-shim@0.1.3: {} + os-tmpdir@1.0.2: {} + + osenv@0.1.5: + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + outdent@0.8.0: {} p-cancelable@2.1.1: {} @@ -26102,6 +30262,8 @@ snapshots: p-defer@1.0.0: {} + p-finally@1.0.0: {} + p-is-promise@2.1.0: {} p-limit@2.3.0: @@ -26204,6 +30366,11 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 + parse-json@4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.2 @@ -26226,6 +30393,10 @@ snapshots: lines-and-columns: 2.0.4 type-fest: 3.13.1 + parse-png@2.1.0: + dependencies: + pngjs: 3.4.0 + parse5-htmlparser2-tree-adapter@7.0.0: dependencies: domhandler: 5.0.3 @@ -26246,6 +30417,11 @@ snapshots: no-case: 3.0.4 tslib: 2.6.2 + password-prompt@1.1.3: + dependencies: + ansi-escapes: 4.3.2 + cross-spawn: 7.0.3 + path-browserify@1.0.1: {} path-exists@3.0.0: {} @@ -26258,6 +30434,8 @@ snapshots: path-is-inside@1.0.2: {} + path-key@2.0.1: {} + path-key@3.1.1: {} path-key@4.0.0: {} @@ -26319,6 +30497,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@3.0.1: {} + picomatch@4.0.2: {} pify@2.3.0: {} @@ -26402,8 +30582,8 @@ snapshots: pkg-types@1.0.3: dependencies: jsonc-parser: 3.2.0 - mlly: 1.4.2 - pathe: 1.1.1 + mlly: 1.6.1 + pathe: 1.1.2 pkg-up@3.1.0: dependencies: @@ -26417,11 +30597,19 @@ snapshots: optionalDependencies: fsevents: 2.3.2 + plist@3.1.0: + dependencies: + '@xmldom/xmldom': 0.8.10 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + pluralize@8.0.0: {} + pngjs@3.4.0: {} + polished@4.3.1: dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 possible-typed-array-names@1.0.0: {} @@ -26542,6 +30730,14 @@ snapshots: '@csstools/utilities': 1.0.0(postcss@8.4.38) postcss: 8.4.38 + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5)): + dependencies: + lilconfig: 3.1.2 + yaml: 2.3.4 + optionalDependencies: + postcss: 8.4.38 + ts-node: 10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5) + postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))): dependencies: cosmiconfig: 9.0.0(typescript@5.4.5) @@ -26780,11 +30976,20 @@ snapshots: prettier@3.3.0: {} + pretty-bytes@5.6.0: {} + pretty-error@4.0.0: dependencies: lodash: 4.17.21 renderkid: 3.0.0 + pretty-format@26.6.2: + dependencies: + '@jest/types': 26.6.2 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + react-is: 17.0.2 + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 @@ -26842,6 +31047,14 @@ snapshots: dependencies: make-error: 1.3.6 + promise@7.3.1: + dependencies: + asap: 2.0.6 + + promise@8.3.0: + dependencies: + asap: 2.0.6 + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -26903,6 +31116,8 @@ snapshots: qr.js@0.0.0: {} + qrcode-terminal@0.11.0: {} + qs@6.11.0: dependencies: side-channel: 1.0.5 @@ -27021,6 +31236,14 @@ snapshots: - supports-color - vue-template-compiler + react-devtools-core@5.2.0: + dependencies: + shell-quote: 1.8.1 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + react-docgen-typescript@2.2.2(typescript@5.4.5): dependencies: typescript: 5.4.5 @@ -27028,8 +31251,8 @@ snapshots: react-docgen@7.0.3: dependencies: '@babel/core': 7.24.4 - '@babel/traverse': 7.24.0(supports-color@5.5.0) - '@babel/types': 7.24.0 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 '@types/doctrine': 0.0.9 @@ -27045,12 +31268,26 @@ snapshots: dom-confetti: 0.2.2 react: 18.3.1 + react-dom@18.2.0(react@18.2.0): + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.2 + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 react: 18.3.1 scheduler: 0.23.2 + react-element-to-jsx-string@15.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@base2/pretty-print-object': 1.0.1 + is-plain-object: 5.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.1.0 + react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@base2/pretty-print-object': 1.0.1 @@ -27101,13 +31338,63 @@ snapshots: lottie-web: 5.12.2 react: 18.3.1 + react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1): + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native-community/cli': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-platform-android': 13.6.6(encoding@0.1.13) + '@react-native-community/cli-platform-ios': 13.6.6(encoding@0.1.13) + '@react-native/assets-registry': 0.74.83 + '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.6(@babel/core@7.24.4)) + '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) + '@react-native/gradle-plugin': 0.74.83 + '@react-native/js-polyfills': 0.74.83 + '@react-native/normalize-colors': 0.74.83 + '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + base64-js: 1.5.1 + chalk: 4.1.2 + event-target-shim: 5.0.1 + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + jsc-android: 250231.0.0 + memoize-one: 5.2.1 + metro-runtime: 0.80.9 + metro-source-map: 0.80.9 + mkdirp: 0.5.6 + nullthrows: 1.1.1 + pretty-format: 26.6.2 + promise: 8.3.0 + react: 18.3.1 + react-devtools-core: 5.2.0 + react-refresh: 0.14.2 + react-shallow-renderer: 16.15.0(react@18.2.0) + regenerator-runtime: 0.13.11 + scheduler: 0.24.0-canary-efb381bbf-20230505 + stacktrace-parser: 0.1.10 + whatwg-fetch: 3.6.20 + ws: 8.17.1 + yargs: 17.7.2 + optionalDependencies: + '@types/react': 18.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@babel/preset-env' + - bufferutil + - encoding + - supports-color + - utf-8-validate + react-qr-code@2.0.12(react@18.3.1): dependencies: prop-types: 15.8.1 qr.js: 0.0.0 react: 18.3.1 - react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1): + react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1): dependencies: '@babel/runtime': 7.23.9 '@types/hoist-non-react-statics': 3.3.5 @@ -27120,19 +31407,29 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react-dom: 18.3.1(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) redux: 4.2.1 - react-redux@9.1.0(@types/react@18.3.3)(react@18.3.1)(redux@5.0.1): + react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.3 react: 18.3.1 use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.3.3 + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) redux: 5.0.1 react-refresh@0.14.2: {} + react-remove-scroll-bar@2.3.5(@types/react@18.3.3)(react@18.2.0): + dependencies: + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.2.0) + tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.3.3 + react-remove-scroll-bar@2.3.5(@types/react@18.3.3)(react@18.3.1): dependencies: react: 18.3.1 @@ -27141,6 +31438,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + react-remove-scroll@2.5.5(@types/react@18.3.3)(react@18.2.0): + dependencies: + react: 18.2.0 + react-remove-scroll-bar: 2.3.5(@types/react@18.3.3)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.1(@types/react@18.3.3)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.2.0) + optionalDependencies: + '@types/react': 18.3.3 + react-remove-scroll@2.5.5(@types/react@18.3.3)(react@18.3.1): dependencies: react: 18.3.1 @@ -27180,6 +31488,21 @@ snapshots: transitivePeerDependencies: - '@types/react' + react-shallow-renderer@16.15.0(react@18.2.0): + dependencies: + object-assign: 4.1.1 + react: 18.2.0 + react-is: 18.2.0 + + react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.2.0): + dependencies: + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.3.3 + react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): dependencies: get-nonce: 1.0.1 @@ -27203,6 +31526,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + react@18.2.0: + dependencies: + loose-envify: 1.4.0 + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -27238,6 +31565,11 @@ snapshots: parse-json: 5.2.0 type-fest: 2.19.0 + read-yaml-file@2.1.0: + dependencies: + js-yaml: 4.1.0 + strip-bom: 4.0.0 + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -27268,8 +31600,17 @@ snapshots: readline-transform@1.0.0: {} + readline@1.3.0: {} + real-require@0.2.0: {} + recast@0.21.5: + dependencies: + ast-types: 0.15.2 + esprima: 4.0.1 + source-map: 0.6.1 + tslib: 2.6.2 + recast@0.23.6: dependencies: ast-types: 0.16.1 @@ -27354,12 +31695,6 @@ snapshots: regexp-tree@0.1.27: {} - regexp.prototype.flags@1.5.1: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - set-function-name: 2.0.1 - regexp.prototype.flags@1.5.2: dependencies: call-bind: 1.0.7 @@ -27455,6 +31790,8 @@ snapshots: remove-accents@0.4.2: {} + remove-trailing-slash@0.1.1: {} + renderkid@3.0.0: dependencies: css-select: 4.3.0 @@ -27490,6 +31827,14 @@ snapshots: require-from-string@2.0.2: {} + require-main-filename@2.0.0: {} + + requireg@0.2.2: + dependencies: + nested-error-stacks: 2.0.1 + rc: 1.2.8 + resolve: 1.7.1 + requireindex@1.2.0: {} requires-port@1.0.0: {} @@ -27506,18 +31851,26 @@ snapshots: dependencies: resolve-from: 5.0.0 + resolve-from@3.0.0: {} + resolve-from@4.0.0: {} resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} + resolve.exports@2.0.2: {} + resolve@1.22.8: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@1.7.1: + dependencies: + path-parse: 1.0.7 + resolve@2.0.0-next.5: dependencies: is-core-module: 2.13.1 @@ -27532,6 +31885,11 @@ snapshots: dependencies: lowercase-keys: 3.0.0 + restore-cursor@2.0.0: + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -27668,6 +32026,10 @@ snapshots: dependencies: loose-envify: 1.4.0 + scheduler@0.24.0-canary-efb381bbf-20230505: + dependencies: + loose-envify: 1.4.0 + schema-inspector@2.0.2: dependencies: async: 2.6.4 @@ -27741,6 +32103,8 @@ snapshots: transitivePeerDependencies: - supports-color + serialize-error@2.1.0: {} + serialize-error@7.0.1: dependencies: type-fest: 0.13.1 @@ -27782,12 +32146,6 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.2 - set-function-name@2.0.1: - dependencies: - define-data-property: 1.1.4 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 @@ -27814,10 +32172,16 @@ snapshots: shallowequal@1.1.0: {} + shebang-command@1.2.0: + dependencies: + shebang-regex: 1.0.0 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 + shebang-regex@1.0.0: {} + shebang-regex@3.0.0: {} shell-quote@1.7.3: {} @@ -27863,6 +32227,12 @@ snapshots: simple-element-resize-detector@1.3.0: {} + simple-plist@1.3.1: + dependencies: + bplist-creator: 0.1.0 + bplist-parser: 0.3.1 + plist: 3.1.0 + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -27879,8 +32249,16 @@ snapshots: slash@5.1.0: {} + slice-ansi@2.1.0: + dependencies: + ansi-styles: 3.2.1 + astral-regex: 1.0.0 + is-fullwidth-code-point: 2.0.0 + sliced@1.0.1: {} + slugify@1.6.6: {} + smart-buffer@4.2.0: {} socket.io-client@4.4.1: @@ -27996,6 +32374,10 @@ snapshots: source-map@0.7.4: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + space-separated-tokens@2.0.2: {} spawn-command@0.0.2: {} @@ -28080,15 +32462,27 @@ snapshots: safer-buffer: 2.1.2 tweetnacl: 0.14.5 + ssri@10.0.6: + dependencies: + minipass: 7.0.4 + ssri@8.0.1: dependencies: minipass: 3.3.6 optional: true + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + stackback@0.0.2: {} stackframe@1.3.4: {} + stacktrace-parser@0.1.10: + dependencies: + type-fest: 0.7.1 + statuses@1.5.0: {} statuses@2.0.1: {} @@ -28101,7 +32495,7 @@ snapshots: stop-iteration-iterator@1.0.0: dependencies: - internal-slot: 1.0.6 + internal-slot: 1.0.7 store2@2.14.3: {} @@ -28122,6 +32516,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + stream-buffers@2.2.0: {} + stream-combiner@0.2.2: dependencies: duplexer: 0.1.2 @@ -28214,6 +32610,10 @@ snapshots: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -28233,8 +32633,12 @@ snapshots: strip-bom@3.0.0: {} + strip-bom@4.0.0: {} + strip-bom@5.0.0: {} + strip-eof@1.0.0: {} + strip-final-newline@2.0.0: {} strip-final-newline@3.0.0: {} @@ -28257,6 +32661,10 @@ snapshots: dependencies: js-tokens: 9.0.0 + strnum@1.0.5: {} + + structured-headers@0.4.1: {} + style-loader@3.3.4(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))): dependencies: webpack: 5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)) @@ -28289,9 +32697,35 @@ snapshots: stylis@4.2.0: {} + sucrase@3.34.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.3.10 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + sudo-prompt@8.2.5: {} + + sudo-prompt@9.1.1: {} + + sudo-prompt@9.2.1: {} + sumchecker@3.0.1: dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -28313,6 +32747,11 @@ snapshots: supports-color@9.4.0: {} + supports-hyperlinks@2.3.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} svg-url-loader@8.0.0(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))): @@ -28328,6 +32767,8 @@ snapshots: symbol-tree@3.2.4: {} + synchronous-promise@2.0.17: {} + synckit@0.9.0: dependencies: '@pkgr/core': 0.1.1 @@ -28369,12 +32810,28 @@ snapshots: dependencies: memoizerific: 1.11.3 + temp-dir@1.0.0: {} + temp-dir@2.0.0: {} temp@0.8.4: dependencies: rimraf: 2.6.3 + tempy@0.3.0: + dependencies: + temp-dir: 1.0.0 + type-fest: 0.3.1 + unique-string: 1.0.0 + + tempy@0.7.1: + dependencies: + del: 6.1.1 + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + tempy@1.0.1: dependencies: del: 6.1.1 @@ -28383,6 +32840,11 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 + terminal-link@2.1.1: + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + terser-webpack-plugin@5.3.10(@swc/core@1.4.8)(esbuild@0.21.4)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))): dependencies: '@jridgewell/trace-mapping': 0.3.22 @@ -28408,7 +32870,6 @@ snapshots: acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 - optional: true test-exclude@6.0.0: dependencies: @@ -28430,6 +32891,8 @@ snapshots: dependencies: real-require: 0.2.0 + throat@5.0.0: {} + through2@2.0.5: dependencies: readable-stream: 2.3.8 @@ -28453,14 +32916,18 @@ snapshots: tinypool@0.8.3: {} - tinyspy@2.2.0: {} - tinyspy@2.2.1: {} + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + tmp@0.2.1: dependencies: rimraf: 3.0.2 + tmpl@1.0.5: {} + to-fast-properties@2.0.0: {} to-regex-range@5.0.1: @@ -28491,10 +32958,20 @@ snapshots: tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + tr46@4.1.1: dependencies: punycode: 2.3.1 + traverse@0.6.9: + dependencies: + gopd: 1.0.1 + typedarray.prototype.slice: 1.0.3 + which-typed-array: 1.1.15 + tree-kill@1.2.2: {} trim-lines@3.0.1: {} @@ -28533,6 +33010,8 @@ snapshots: optionalDependencies: jsdom: 22.1.0 + ts-interface-checker@0.1.13: {} + ts-morph@19.0.0: dependencies: '@ts-morph/common': 0.20.0 @@ -28604,6 +33083,30 @@ snapshots: tslib@2.6.2: {} + tsup@8.1.0(@swc/core@1.4.8)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5): + dependencies: + bundle-require: 4.2.1(esbuild@0.21.4) + cac: 6.7.14 + chokidar: 3.6.0 + debug: 4.3.5 + esbuild: 0.21.4 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5)) + resolve-from: 5.0.0 + rollup: 4.14.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tree-kill: 1.2.2 + optionalDependencies: + '@swc/core': 1.4.8 + postcss: 8.4.38 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + - ts-node + tsutils@3.21.0(typescript@5.4.5): dependencies: tslib: 1.14.1 @@ -28632,8 +33135,14 @@ snapshots: type-fest@0.20.2: {} + type-fest@0.21.3: {} + + type-fest@0.3.1: {} + type-fest@0.6.0: {} + type-fest@0.7.1: {} + type-fest@0.8.1: {} type-fest@1.4.0: {} @@ -28686,6 +33195,15 @@ snapshots: dependencies: is-typedarray: 1.0.0 + typedarray.prototype.slice@1.0.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + typed-array-buffer: 1.0.2 + typed-array-byte-offset: 1.0.2 + typedarray@0.0.6: {} typeforce@1.18.0: {} @@ -28694,7 +33212,7 @@ snapshots: typescript@5.4.5: {} - ufo@1.3.2: {} + ua-parser-js@1.0.38: {} ufo@1.5.3: {} @@ -28771,11 +33289,23 @@ snapshots: unique-slug: 2.0.2 optional: true + unique-filename@3.0.0: + dependencies: + unique-slug: 4.0.0 + unique-slug@2.0.2: dependencies: imurmurhash: 0.1.4 optional: true + unique-slug@4.0.0: + dependencies: + imurmurhash: 0.1.4 + + unique-string@1.0.0: + dependencies: + crypto-random-string: 1.0.0 + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 @@ -28879,6 +33409,8 @@ snapshots: dependencies: punycode: 2.3.1 + url-join@4.0.0: {} + url-join@5.0.0: {} url-parse@1.5.10: @@ -28891,6 +33423,13 @@ snapshots: punycode: 1.4.1 qs: 6.11.2 + use-callback-ref@1.3.1(@types/react@18.3.3)(react@18.2.0): + dependencies: + react: 18.2.0 + tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.3.3 + use-callback-ref@1.3.1(@types/react@18.3.3)(react@18.3.1): dependencies: react: 18.3.1 @@ -28916,6 +33455,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + use-sidecar@1.1.2(@types/react@18.3.3)(react@18.2.0): + dependencies: + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.6.2 + optionalDependencies: + '@types/react': 18.3.3 + use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): dependencies: detect-node-es: 1.1.0 @@ -28944,6 +33491,8 @@ snapshots: uuid@3.4.0: {} + uuid@7.0.3: {} + uuid@8.3.2: {} uuid@9.0.1: {} @@ -28964,6 +33513,10 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + validate-npm-package-name@3.0.0: + dependencies: + builtins: 1.0.3 + validate.io-array@1.0.6: {} validate.io-function@1.0.2: {} @@ -29092,6 +33645,8 @@ snapshots: - supports-color - terser + vlq@1.0.1: {} + vm-browserify@1.1.2: {} w3c-xmlserializer@4.0.0: @@ -29100,6 +33655,10 @@ snapshots: walk-up-path@3.0.1: {} + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + watchpack@2.4.0: dependencies: glob-to-regexp: 0.4.1 @@ -29221,6 +33780,10 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + + webidl-conversions@5.0.0: {} + webidl-conversions@7.0.0: {} webpack-bundle-analyzer@4.10.2: @@ -29385,6 +33948,12 @@ snapshots: whatwg-mimetype@3.0.0: {} + whatwg-url-without-unicode@8.0.0-3: + dependencies: + buffer: 5.7.1 + punycode: 2.3.1 + webidl-conversions: 5.0.0 + whatwg-url@12.0.1: dependencies: tr46: 4.1.1 @@ -29395,6 +33964,12 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + when@3.7.7: {} which-boxed-primitive@1.0.2: @@ -29420,13 +33995,6 @@ snapshots: which-collection: 1.0.2 which-typed-array: 1.1.15 - which-collection@1.0.1: - dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 - which-collection@1.0.2: dependencies: is-map: 2.0.3 @@ -29434,6 +34002,8 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.3 + which-module@2.0.1: {} + which-pm@2.0.0: dependencies: load-yaml-file: 0.2.0 @@ -29489,6 +34059,8 @@ snapshots: winreg@0.0.12: {} + wonka@4.0.15: {} + wordwrap@1.0.0: {} wrap-ansi@7.0.0: @@ -29522,6 +34094,11 @@ snapshots: ws@8.17.1: {} + xcode@3.0.1: + dependencies: + simple-plist: 1.3.1 + uuid: 7.0.3 + xdg-basedir@5.1.0: {} xml-name-validator@4.0.0: {} @@ -29531,14 +34108,25 @@ snapshots: sax: 1.3.0 xmlbuilder: 11.0.1 + xml2js@0.6.0: + dependencies: + sax: 1.3.0 + xmlbuilder: 11.0.1 + xmlbuilder@11.0.1: {} + xmlbuilder@14.0.0: {} + + xmlbuilder@15.1.1: {} + xmlchars@2.2.0: {} xmlhttprequest-ssl@2.0.0: {} xtend@4.0.2: {} + y18n@4.0.3: {} + y18n@5.0.8: {} yallist@3.1.1: {} @@ -29549,8 +34137,27 @@ snapshots: yaml@2.3.4: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@21.1.1: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@17.7.1: dependencies: cliui: 8.0.1 diff --git a/src/app/common/utils.spec.ts b/src/app/common/utils.spec.ts index 9dd7b8bf253..458f2ab0a6c 100644 --- a/src/app/common/utils.spec.ts +++ b/src/app/common/utils.spec.ts @@ -1,4 +1,4 @@ -import { extractPhraseFromString, getTicker } from '@app/common/utils'; +import { getTicker } from '@app/common/utils'; const nothing = 'micro-nothing'; const novel_token_19 = 'novel-token-19'; @@ -14,81 +14,3 @@ describe(getTicker.name, () => { expect(ste).toEqual('STE'); }); }); - -const SECRET_KEY_FORMATTED_POORLY = `1 balance -2 adult -3 board -4 true -5 diary -pear banana olympic street enhance - -gift rely account patient stereo one - -during banner shift globe romance - -arrange dolphin disease`; - -const SECRET_KEY_FORMATTED_CORRECTLY = `balance adult board true diary pear banana olympic street enhance gift rely account patient stereo one during banner shift globe romance arrange dolphin disease`; - -const SECRET_KEY_COPIED_FROM_v3 = `1 -almost -2 -dumb -3 -wave -4 -rude -5 -surround -6 -jealous -7 -shine -8 -fruit -9 -toward -10 -method -11 -yard -12 -ribbon -13 -gold -14 -acid -15 -cute -16 -police -17 -team -18 -time -19 -this -20 -easy -21 -heavy -22 -fuel -23 -trash -24 -swing`; - -const SECRET_KEY_COPIED_FROM_V3_FORMATTED = `almost dumb wave rude surround jealous shine fruit toward method yard ribbon gold acid cute police team time this easy heavy fuel trash swing`; - -describe(extractPhraseFromString.name, () => { - test('Extract secret key from poorly formatted string', () => { - const key = extractPhraseFromString(SECRET_KEY_FORMATTED_POORLY); - expect(key).toEqual(SECRET_KEY_FORMATTED_CORRECTLY); - }); - - test('Extract secret key from seed copied from v3 wallet', () => { - const key = extractPhraseFromString(SECRET_KEY_COPIED_FROM_v3); - expect(key).toEqual(SECRET_KEY_COPIED_FROM_V3_FORMATTED); - }); -}); diff --git a/src/app/common/utils.ts b/src/app/common/utils.ts index 9e62f5a91ae..0ff97a8d52a 100644 --- a/src/app/common/utils.ts +++ b/src/app/common/utils.ts @@ -8,7 +8,6 @@ import { type BitcoinNetworkModes, HIRO_API_BASE_URL_NAKAMOTO_TESTNET, } from '@leather-wallet/models'; -import { isBoolean } from '@leather-wallet/utils'; import { HIRO_EXPLORER_URL } from '@shared/constants'; @@ -16,19 +15,6 @@ function kebabCase(str: string) { return str.replace(KEBAB_REGEX, match => '-' + match.toLowerCase()); } -export function extractPhraseFromString(value: string) { - const clean = value.trim(); - const words = clean.match(/\S+/g); - if (words?.length) { - return words - .map(word => (word.match(/[^0-9]+/g) ? word : null)) - .filter(Boolean) - .join(' '); - } else { - return clean; - } -} - interface MakeBitcoinTxExplorerLinkArgs { txid: string; bitcoin: BitcoinChainConfig; @@ -306,7 +292,3 @@ export function removeTrailingNullCharacters(s: string) { export function removeMinusSign(value: string) { return value.replace('-', ''); } - -export function propIfDefined(prop: string, value: any) { - return isBoolean(value) ? { [prop]: value } : {}; -} diff --git a/src/app/common/utils/spam-filter.spec.ts b/src/app/common/utils/spam-filter.spec.ts deleted file mode 100644 index ed6e3f4a7a5..00000000000 --- a/src/app/common/utils/spam-filter.spec.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { spamFilter, spamReplacement } from '@app/common/utils/spam-filter'; - -describe('Spam filter', () => { - it('should allow valid tokens', () => { - expect(spamFilter('This token name is OK')).not.toEqual(spamReplacement); - }); - it('should detect spam urls in strings and replace content', () => { - expect(spamFilter('www.fake')).toEqual(spamReplacement); - expect(spamFilter('https://www.fake.com')).toEqual(spamReplacement); - expect(spamFilter('fake.com')).toEqual(spamReplacement); - expect(spamFilter('https://www.fake')).toEqual(spamReplacement); - expect(spamFilter('http://www.fake')).toEqual(spamReplacement); - expect(spamFilter('ftp://fake.com')).toEqual(spamReplacement); - expect(spamFilter('https://fake.com')).toEqual(spamReplacement); - expect(spamFilter('http://fake.com')).toEqual(spamReplacement); - expect(spamFilter('https://fake')).toEqual(spamReplacement); - expect(spamFilter('http://fake')).toEqual(spamReplacement); - }); - it('should detect spam words in strings and replace content', () => { - expect(spamFilter('You won some stx')).toEqual(spamReplacement); - expect(spamFilter('You Win some stx')).toEqual(spamReplacement); - expect(spamFilter('You Won some stx')).toEqual(spamReplacement); - expect(spamFilter('click here for some stx')).toEqual(spamReplacement); - expect(spamFilter('Click here for some stx')).toEqual(spamReplacement); - }); -}); diff --git a/src/app/common/utils/spam-filter.ts b/src/app/common/utils/spam-filter.ts deleted file mode 100644 index 0e74172617d..00000000000 --- a/src/app/common/utils/spam-filter.ts +++ /dev/null @@ -1,24 +0,0 @@ -const urlRegex = - /(http|https|ftp)|(((http|ftp|https):\/\/)?(((http|ftp|https):\/\/)?(([\w.-]*)\.([\w]*))))/g; -const spamWords = ['won', 'win', 'click']; -export const spamReplacement = 'Unknown token'; - -function spamUrlFilter(input: string) { - return input.match(urlRegex); -} - -function spamWordFilter(input: string): boolean { - const containsSpam = (element: string) => input.toLowerCase().includes(element); - return spamWords.some(containsSpam); -} - -export function spamFilter(input: string): string { - const urlFound = spamUrlFilter(input); - const spamWordsFound = spamWordFilter(input); - - if (urlFound || spamWordsFound) { - return spamReplacement; - } - - return input; -} diff --git a/src/app/components/account-total-balance.tsx b/src/app/components/account-total-balance.tsx index 39138230f2b..b5fa26f4a9a 100644 --- a/src/app/components/account-total-balance.tsx +++ b/src/app/components/account-total-balance.tsx @@ -2,10 +2,9 @@ import { memo } from 'react'; import { styled } from 'leather-styles/jsx'; -import { useTotalBalance } from '@app/common/hooks/balance/use-total-balance'; +import { SkeletonLoader, shimmerStyles } from '@leather-wallet/ui'; -import { SkeletonLoader } from '../ui/components/skeleton-loader/skeleton-loader'; -import { shimmerStyles } from '../ui/shared/shimmer-styles'; +import { useTotalBalance } from '@app/common/hooks/balance/use-total-balance'; interface AccountTotalBalanceProps { btcAddress: string; diff --git a/src/app/components/account/account-addresses.tsx b/src/app/components/account/account-addresses.tsx index baa8b648f42..be2bde0d993 100644 --- a/src/app/components/account/account-addresses.tsx +++ b/src/app/components/account/account-addresses.tsx @@ -1,10 +1,8 @@ import { HStack } from 'leather-styles/jsx'; +import { BulletSeparator, Caption } from '@leather-wallet/ui'; import { truncateMiddle } from '@leather-wallet/utils'; -import { BulletSeparator } from '@app/ui/components/bullet-separator/bullet-separator'; -import { Caption } from '@app/ui/components/typography/caption'; - import { BitcoinNativeSegwitAccountLoader } from '../loaders/bitcoin-account-loader'; import { StacksAccountLoader } from '../loaders/stacks-account-loader'; diff --git a/src/app/components/account/account-list-item.layout.tsx b/src/app/components/account/account-list-item.layout.tsx index 0b0f014af0e..db87f3ef3d9 100644 --- a/src/app/components/account/account-list-item.layout.tsx +++ b/src/app/components/account/account-list-item.layout.tsx @@ -2,9 +2,7 @@ import { ReactNode } from 'react'; import { SettingsSelectors } from '@tests/selectors/settings.selectors'; -import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; -import { Spinner } from '@app/ui/components/spinner'; -import { Pressable } from '@app/ui/pressable/pressable'; +import { ItemLayout, Pressable, Spinner } from '@leather-wallet/ui'; interface AccountListItemLayoutProps { accountAddresses: ReactNode; diff --git a/src/app/components/account/account-name.tsx b/src/app/components/account/account-name.tsx index 280cf99de8c..80f415e1373 100644 --- a/src/app/components/account/account-name.tsx +++ b/src/app/components/account/account-name.tsx @@ -2,7 +2,7 @@ import { memo } from 'react'; import { type HTMLStyledProps, styled } from 'leather-styles/jsx'; -import { shimmerStyles } from '@app/ui/shared/shimmer-styles'; +import { shimmerStyles } from '@leather-wallet/ui'; interface AccountNameLayoutProps extends HTMLStyledProps<'span'> { children: React.ReactNode; diff --git a/src/app/components/balance/btc-balance.tsx b/src/app/components/balance/btc-balance.tsx index 61830a36f89..a4af66d19b3 100644 --- a/src/app/components/balance/btc-balance.tsx +++ b/src/app/components/balance/btc-balance.tsx @@ -1,7 +1,6 @@ +import { Caption } from '@leather-wallet/ui'; import { formatMoney } from '@leather-wallet/utils'; -import { Caption } from '@app/ui/components/typography/caption'; - import { BitcoinNativeSegwitAccountLoader } from '../loaders/bitcoin-account-loader'; import { BtcBalanceLoader } from '../loaders/btc-balance-loader'; diff --git a/src/app/components/balance/stx-balance.tsx b/src/app/components/balance/stx-balance.tsx index 5f9a89afc22..d6d309eb0ba 100644 --- a/src/app/components/balance/stx-balance.tsx +++ b/src/app/components/balance/stx-balance.tsx @@ -1,9 +1,9 @@ import { useMemo } from 'react'; import { useStxCryptoAssetBalance } from '@leather-wallet/query'; +import { Caption } from '@leather-wallet/ui'; import { stacksValue } from '@app/common/stacks-utils'; -import { Caption } from '@app/ui/components/typography/caption'; interface StxBalanceProps { address: string; diff --git a/src/app/components/bitcoin-contract-entry-point/bitcoin-contract-entry-point-layout.tsx b/src/app/components/bitcoin-contract-entry-point/bitcoin-contract-entry-point-layout.tsx index 3d74a72a338..0ea01d4de5d 100644 --- a/src/app/components/bitcoin-contract-entry-point/bitcoin-contract-entry-point-layout.tsx +++ b/src/app/components/bitcoin-contract-entry-point/bitcoin-contract-entry-point-layout.tsx @@ -1,10 +1,10 @@ import { Flex, HStack, styled } from 'leather-styles/jsx'; import type { Money } from '@leather-wallet/models'; +import { Flag } from '@leather-wallet/ui'; import { formatBalance } from '@app/common/format-balance'; import { ftDecimals } from '@app/common/stacks-utils'; -import { Flag } from '@app/ui/components/flag/flag'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; import { LoadingSpinner } from '../loading-spinner'; diff --git a/src/app/components/bitcoin-contract-entry-point/bitcoin-contract-entry-point.tsx b/src/app/components/bitcoin-contract-entry-point/bitcoin-contract-entry-point.tsx index 9ba20f6e408..e5f61e16a1d 100644 --- a/src/app/components/bitcoin-contract-entry-point/bitcoin-contract-entry-point.tsx +++ b/src/app/components/bitcoin-contract-entry-point/bitcoin-contract-entry-point.tsx @@ -1,9 +1,10 @@ import { useNavigate } from 'react-router-dom'; +import { BitcoinContractIcon } from '@leather-wallet/ui'; + import { RouteUrls } from '@shared/route-urls'; import { useGetBitcoinContractsBalance } from '@app/query/bitcoin/balance/bitcoin-contracts-balance.hooks'; -import { BitcoinContractIcon } from '@app/ui/icons/bitcoin-contract-icon'; import { BitcoinContractEntryPointLayout } from './bitcoin-contract-entry-point-layout'; diff --git a/src/app/components/bitcoin-custom-fee/bitcoin-custom-fee-input.tsx b/src/app/components/bitcoin-custom-fee/bitcoin-custom-fee-input.tsx index be782617ead..37ebb7a44ed 100644 --- a/src/app/components/bitcoin-custom-fee/bitcoin-custom-fee-input.tsx +++ b/src/app/components/bitcoin-custom-fee/bitcoin-custom-fee-input.tsx @@ -3,13 +3,13 @@ import { useState } from 'react'; import { useField } from 'formik'; import { Stack } from 'leather-styles/jsx'; +import { Input } from '@leather-wallet/ui'; import { createMoney, satToBtc } from '@leather-wallet/utils'; import type { TransferRecipient } from '@shared/models/form.model'; import { useOnMount } from '@app/common/hooks/use-on-mount'; import { InsufficientFundsError } from '@app/common/transactions/bitcoin/coinselect/local-coin-selection'; -import { Input } from '@app/ui/components/input/input'; import { ErrorLabel } from '../error-label'; import { BitcoinCustomFeeFiat } from './bitcoin-custom-fee-fiat'; diff --git a/src/app/components/bitcoin-custom-fee/bitcoin-custom-fee.tsx b/src/app/components/bitcoin-custom-fee/bitcoin-custom-fee.tsx index b9e501127d2..1f6c4bde00b 100644 --- a/src/app/components/bitcoin-custom-fee/bitcoin-custom-fee.tsx +++ b/src/app/components/bitcoin-custom-fee/bitcoin-custom-fee.tsx @@ -6,13 +6,12 @@ import { Stack, styled } from 'leather-styles/jsx'; import * as yup from 'yup'; import type { BtcFeeType } from '@leather-wallet/models'; +import { Button, Link } from '@leather-wallet/ui'; import { createMoney } from '@leather-wallet/utils'; import type { TransferRecipient } from '@shared/models/form.model'; import { openInNewTab } from '@app/common/utils/open-in-new-tab'; -import { Button } from '@app/ui/components/button/button'; -import { Link } from '@app/ui/components/link/link'; import { OnChooseFeeArgs } from '../bitcoin-fees-list/bitcoin-fees-list'; import { BitcoinCustomFeeInput } from './bitcoin-custom-fee-input'; diff --git a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-icon.tsx b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-icon.tsx index cbfceaedf2a..a00fb3a7023 100644 --- a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-icon.tsx +++ b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-icon.tsx @@ -1,10 +1,9 @@ import { Circle, CircleProps, Flex } from 'leather-styles/jsx'; import type { BitcoinTx } from '@leather-wallet/models'; +import { ArrowDownIcon, ArrowUpIcon } from '@leather-wallet/ui'; import { isBitcoinTxInbound } from '@app/common/transactions/bitcoin/utils'; -import { ArrowDownIcon } from '@app/ui/icons/arrow-down-icon'; -import { ArrowUpIcon } from '@app/ui/icons/arrow-up-icon'; function TxStatusIcon(props: { address: string; tx: BitcoinTx }) { const { address, tx } = props; diff --git a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx index 458c3afb7c6..59dffbdec23 100644 --- a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx +++ b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx @@ -5,6 +5,7 @@ import { HStack } from 'leather-styles/jsx'; import type { BitcoinTx } from '@leather-wallet/models'; import { useInscriptionByOutput } from '@leather-wallet/query'; +import { BulletSeparator, Caption } from '@leather-wallet/ui'; import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; @@ -21,8 +22,6 @@ import { IncreaseFeeButton } from '@app/components/stacks-transaction-item/incre import { TransactionTitle } from '@app/components/transaction/transaction-title'; import { useCurrentAccountNativeSegwitAddressIndexZero } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon'; -import { BulletSeparator } from '@app/ui/components/bullet-separator/bullet-separator'; -import { Caption } from '@app/ui/components/typography/caption'; import { TransactionItemLayout } from '../transaction-item/transaction-item.layout'; import { BitcoinTransactionIcon } from './bitcoin-transaction-icon'; diff --git a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-status.tsx b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-status.tsx index 21991055ea3..f7b29f4e156 100644 --- a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-status.tsx +++ b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-status.tsx @@ -1,7 +1,7 @@ import type { BitcoinTx } from '@leather-wallet/models'; +import { Caption } from '@leather-wallet/ui'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { Caption } from '@app/ui/components/typography/caption'; interface BitcoinTransactionStatusProps { transaction: BitcoinTx; diff --git a/src/app/components/broadcast-error-dialog/broadcast-error-dialog.tsx b/src/app/components/broadcast-error-dialog/broadcast-error-dialog.tsx index 574a2a99a5a..bc7a8a1238a 100644 --- a/src/app/components/broadcast-error-dialog/broadcast-error-dialog.tsx +++ b/src/app/components/broadcast-error-dialog/broadcast-error-dialog.tsx @@ -4,7 +4,8 @@ import GenericError from '@assets/images/generic-error.png'; import { Flex, styled } from 'leather-styles/jsx'; import get from 'lodash.get'; -import { Button } from '@app/ui/components/button/button'; +import { Button } from '@leather-wallet/ui'; + import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; diff --git a/src/app/components/crypto-asset-item/crypto-asset-item-error.tsx b/src/app/components/crypto-asset-item/crypto-asset-item-error.tsx index e6a42c98e30..2ce98b40799 100644 --- a/src/app/components/crypto-asset-item/crypto-asset-item-error.tsx +++ b/src/app/components/crypto-asset-item/crypto-asset-item-error.tsx @@ -1,7 +1,7 @@ import type { QueryObserverResult } from '@tanstack/react-query'; import { Box, styled } from 'leather-styles/jsx'; -import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; +import { ItemLayout } from '@leather-wallet/ui'; interface CryptoAssetItemErrorProps { caption: string; diff --git a/src/app/components/crypto-asset-item/crypto-asset-item-placeholder.tsx b/src/app/components/crypto-asset-item/crypto-asset-item-placeholder.tsx index 4254f2d1427..87f28c9437b 100644 --- a/src/app/components/crypto-asset-item/crypto-asset-item-placeholder.tsx +++ b/src/app/components/crypto-asset-item/crypto-asset-item-placeholder.tsx @@ -1,7 +1,6 @@ import { Box, Circle } from 'leather-styles/jsx'; -import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; -import { SkeletonLoader } from '@app/ui/components/skeleton-loader/skeleton-loader'; +import { ItemLayout, SkeletonLoader } from '@leather-wallet/ui'; export function CryptoAssetItemPlaceholder() { return ( diff --git a/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx b/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx index 931b2e079dc..dc010fa0307 100644 --- a/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx +++ b/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx @@ -1,14 +1,16 @@ import { Box, Flex, styled } from 'leather-styles/jsx'; import type { Money } from '@leather-wallet/models'; +import { + BulletSeparator, + Caption, + ItemLayout, + Pressable, + SkeletonLoader, +} from '@leather-wallet/ui'; +import { spamFilter } from '@leather-wallet/utils'; -import { spamFilter } from '@app/common/utils/spam-filter'; -import { BulletSeparator } from '@app/ui/components/bullet-separator/bullet-separator'; -import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; -import { SkeletonLoader } from '@app/ui/components/skeleton-loader/skeleton-loader'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { Caption } from '@app/ui/components/typography/caption'; -import { Pressable } from '@app/ui/pressable/pressable'; import { parseCryptoAssetBalance } from './crypto-asset-item.layout.utils'; diff --git a/src/app/components/disclaimer.tsx b/src/app/components/disclaimer.tsx index 0ef74549f06..238ca0c613d 100644 --- a/src/app/components/disclaimer.tsx +++ b/src/app/components/disclaimer.tsx @@ -1,7 +1,8 @@ import { Box, BoxProps, styled } from 'leather-styles/jsx'; +import { Link } from '@leather-wallet/ui'; + import { openInNewTab } from '@app/common/utils/open-in-new-tab'; -import { Link } from '@app/ui/components/link/link'; interface DisclaimerProps extends BoxProps { disclaimerText: string; diff --git a/src/app/components/error-label.tsx b/src/app/components/error-label.tsx index 00a6537d05f..d848fd61b50 100644 --- a/src/app/components/error-label.tsx +++ b/src/app/components/error-label.tsx @@ -1,5 +1,4 @@ -import { Flag, type FlagProps } from '@app/ui/components/flag/flag'; -import { ErrorCircleIcon } from '@app/ui/icons/error-circle-icon'; +import { ErrorCircleIcon, Flag, type FlagProps } from '@leather-wallet/ui'; export function ErrorLabel({ children, ...rest }: FlagProps) { return ( diff --git a/src/app/components/event-card.tsx b/src/app/components/event-card.tsx index 76f720e5eb6..f89241468e4 100644 --- a/src/app/components/event-card.tsx +++ b/src/app/components/event-card.tsx @@ -1,6 +1,6 @@ import { Box, HStack, Stack, styled } from 'leather-styles/jsx'; -import { Caption } from '@app/ui/components/typography/caption'; +import { Caption } from '@leather-wallet/ui'; import { TxAssetItem } from './tx-asset-item'; diff --git a/src/app/components/fees-row/components/fee-estimate-item.tsx b/src/app/components/fees-row/components/fee-estimate-item.tsx index 8c4fbad1253..c1ada2174ca 100644 --- a/src/app/components/fees-row/components/fee-estimate-item.tsx +++ b/src/app/components/fees-row/components/fee-estimate-item.tsx @@ -2,9 +2,7 @@ import { useMemo } from 'react'; import { HStack, styled } from 'leather-styles/jsx'; -import { Link } from '@app/ui/components/link/link'; -import { CheckmarkIcon } from '@app/ui/icons/checkmark-icon'; -import { ChevronDownIcon } from '@app/ui/icons/chevron-down-icon'; +import { CheckmarkIcon, ChevronDownIcon, Link } from '@leather-wallet/ui'; const labels = ['Low', 'Standard', 'High', 'Custom']; const testLabels = labels.map(label => label.toLowerCase()); diff --git a/src/app/components/fees-row/components/fees-row.layout.tsx b/src/app/components/fees-row/components/fees-row.layout.tsx index c6bc3e238f9..8c80ceb630e 100644 --- a/src/app/components/fees-row/components/fees-row.layout.tsx +++ b/src/app/components/fees-row/components/fees-row.layout.tsx @@ -1,11 +1,11 @@ import { useField } from 'formik'; import { HStack, HstackProps, styled } from 'leather-styles/jsx'; +import { Callout, InfoCircleIcon } from '@leather-wallet/ui'; + import { openInNewTab } from '@app/common/utils/open-in-new-tab'; import { SponsoredLabel } from '@app/components/sponsored-label'; -import { Callout } from '@app/ui/components/callout/callout'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { InfoCircleIcon } from '@app/ui/icons/info-circle-icon'; const feesInfo = 'Higher fees increase the likelihood of your transaction getting confirmed before others. Click to learn more.'; diff --git a/src/app/components/generic-error/generic-error.layout.tsx b/src/app/components/generic-error/generic-error.layout.tsx index d8f7438154e..c0a7a587836 100644 --- a/src/app/components/generic-error/generic-error.layout.tsx +++ b/src/app/components/generic-error/generic-error.layout.tsx @@ -3,9 +3,9 @@ import { ReactNode } from 'react'; import GenericError from '@assets/images/generic-error.png'; import { Flex, FlexProps, HStack, styled } from 'leather-styles/jsx'; +import { ExternalLinkIcon, Link } from '@leather-wallet/ui'; + import { openInNewTab } from '@app/common/utils/open-in-new-tab'; -import { Link } from '@app/ui/components/link/link'; -import { ExternalLinkIcon } from '@app/ui/icons/external-link-icon'; const supportUrl = 'https://wallet.hiro.so/wallet-faq/where-can-i-find-support-for-the-stacks-wallet'; diff --git a/src/app/components/info-card/info-card.tsx b/src/app/components/info-card/info-card.tsx index e84a34dbba9..d6a9495f97f 100644 --- a/src/app/components/info-card/info-card.tsx +++ b/src/app/components/info-card/info-card.tsx @@ -3,11 +3,9 @@ import { ReactNode } from 'react'; import { SharedComponentsSelectors } from '@tests/selectors/shared-component.selectors'; import { Box, BoxProps, Flex, HStack, Stack, styled } from 'leather-styles/jsx'; +import { Button, DashedHr } from '@leather-wallet/ui'; import { isString } from '@leather-wallet/utils'; -import { Button } from '@app/ui/components/button/button'; -import { DashedHr } from '@app/ui/components/hr'; - // InfoCardRow interface InfoCardRowProps { title?: string; diff --git a/src/app/components/inscription-preview-card/components/inscription-metadata.tsx b/src/app/components/inscription-preview-card/components/inscription-metadata.tsx index 869bfe31f7b..59c6c201878 100644 --- a/src/app/components/inscription-preview-card/components/inscription-metadata.tsx +++ b/src/app/components/inscription-preview-card/components/inscription-metadata.tsx @@ -1,6 +1,6 @@ import { Flex, styled } from 'leather-styles/jsx'; -import { Link } from '@app/ui/components/link/link'; +import { Link } from '@leather-wallet/ui'; interface InscriptionMetadataProps { action?(): void; diff --git a/src/app/components/inscription-preview-card/inscription-preview-card.tsx b/src/app/components/inscription-preview-card/inscription-preview-card.tsx index e3581bba398..cd8653025e9 100644 --- a/src/app/components/inscription-preview-card/inscription-preview-card.tsx +++ b/src/app/components/inscription-preview-card/inscription-preview-card.tsx @@ -1,4 +1,4 @@ -import { Flag } from '@app/ui/components/flag/flag'; +import { Flag } from '@leather-wallet/ui'; import { InscriptionMetadata } from './components/inscription-metadata'; diff --git a/src/app/components/layout/divider-separator.tsx b/src/app/components/layout/divider-separator.tsx index 69eb744fbad..ac08e13f341 100644 --- a/src/app/components/layout/divider-separator.tsx +++ b/src/app/components/layout/divider-separator.tsx @@ -1,6 +1,6 @@ import { ReactNode, cloneElement, isValidElement } from 'react'; -import { Hr, HrProps } from '@app/ui/components/hr'; +import { Hr, HrProps } from '@leather-wallet/ui'; interface DividerSeparatorProps extends HrProps { children: ReactNode; diff --git a/src/app/components/loading-spinner.tsx b/src/app/components/loading-spinner.tsx index ca7530d318b..9ad4f9b934f 100644 --- a/src/app/components/loading-spinner.tsx +++ b/src/app/components/loading-spinner.tsx @@ -1,6 +1,6 @@ import { Flex, FlexProps } from 'leather-styles/jsx'; -import { Spinner } from '@app/ui/components/spinner'; +import { Spinner } from '@leather-wallet/ui'; export function LoadingSpinner(props: { size?: string } & FlexProps) { return ( diff --git a/src/app/components/request-password.tsx b/src/app/components/request-password.tsx index 2ee1fd591c6..888eef86c59 100644 --- a/src/app/components/request-password.tsx +++ b/src/app/components/request-password.tsx @@ -3,14 +3,14 @@ import { FormEvent, useCallback, useState } from 'react'; import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { Box, Stack, styled } from 'leather-styles/jsx'; +import { Button, Logo } from '@leather-wallet/ui'; + import { analytics } from '@shared/utils/analytics'; import { useKeyActions } from '@app/common/hooks/use-key-actions'; import { buildEnterKeyEvent } from '@app/common/hooks/use-modifier-key'; import { WaitingMessages, useWaitingMessage } from '@app/common/hooks/use-waiting-message'; -import { Button } from '@app/ui/components/button/button'; import { Footer } from '@app/ui/components/containers/footers/footer'; -import { Logo } from '@app/ui/components/logo'; import { Card } from '@app/ui/layout/card/card'; import { Page } from '@app/ui/layout/page/page.layout'; diff --git a/src/app/components/requester-flag.tsx b/src/app/components/requester-flag.tsx index 7c4b213bf05..a10e5ca876e 100644 --- a/src/app/components/requester-flag.tsx +++ b/src/app/components/requester-flag.tsx @@ -1,6 +1,6 @@ import { styled } from 'leather-styles/jsx'; -import { Flag } from '@app/ui/components/flag/flag'; +import { Flag } from '@leather-wallet/ui'; import { Favicon } from './favicon'; diff --git a/src/app/components/sponsored-label.tsx b/src/app/components/sponsored-label.tsx index 69922bdf189..37f1ecac3df 100644 --- a/src/app/components/sponsored-label.tsx +++ b/src/app/components/sponsored-label.tsx @@ -1,6 +1,6 @@ import { HStack, Stack, styled } from 'leather-styles/jsx'; -import { ErrorCircleIcon } from '@app/ui/icons/error-circle-icon'; +import { ErrorCircleIcon } from '@leather-wallet/ui'; // #4476 TODO - visually inspect this export function SponsoredLabel(): React.JSX.Element { diff --git a/src/app/components/stacks-asset-avatar.tsx b/src/app/components/stacks-asset-avatar.tsx index 36dde46b297..e7a82df5ef6 100644 --- a/src/app/components/stacks-asset-avatar.tsx +++ b/src/app/components/stacks-asset-avatar.tsx @@ -1,8 +1,9 @@ import { Box, BoxProps } from 'leather-styles/jsx'; +import { DynamicColorCircle } from '@leather-wallet/ui'; + import { Avatar, defaultFallbackDelay } from '@app/ui/components/avatar/avatar'; import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon'; -import { DynamicColorCircle } from '@app/ui/components/dynamic-color-circle'; interface StacksAssetAvatarProps extends BoxProps { gradientString?: string; diff --git a/src/app/components/stacks-transaction-item/increase-fee-button.tsx b/src/app/components/stacks-transaction-item/increase-fee-button.tsx index 846a1259f9d..6b7676ad06c 100644 --- a/src/app/components/stacks-transaction-item/increase-fee-button.tsx +++ b/src/app/components/stacks-transaction-item/increase-fee-button.tsx @@ -1,6 +1,6 @@ import { HStack, styled } from 'leather-styles/jsx'; -import { ChevronsRightIcon } from '@app/ui/icons/chevrons-right-icon'; +import { ChevronsRightIcon } from '@leather-wallet/ui'; interface IncreaseFeeButtonProps { isEnabled?: boolean; diff --git a/src/app/components/stacks-transaction-item/stacks-transaction-icon.tsx b/src/app/components/stacks-transaction-item/stacks-transaction-icon.tsx index 1cb34590520..17807341e7d 100644 --- a/src/app/components/stacks-transaction-item/stacks-transaction-icon.tsx +++ b/src/app/components/stacks-transaction-item/stacks-transaction-icon.tsx @@ -1,11 +1,9 @@ import { BoxProps } from 'leather-styles/jsx'; import { StacksTx } from '@leather-wallet/models'; +import { DynamicColorCircle, ErrorCircleIcon, ListIcon } from '@leather-wallet/ui'; import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon'; -import { DynamicColorCircle } from '@app/ui/components/dynamic-color-circle'; -import { ErrorCircleIcon } from '@app/ui/icons'; -import { ListIcon } from '@app/ui/icons/list-icon'; import { TransactionIconWrapper } from '../transaction/transaction-icon-wrapper'; import { TransactionTypeIcon } from '../transaction/transaction-type-icon'; diff --git a/src/app/components/stacks-transaction-item/stacks-transaction-status.tsx b/src/app/components/stacks-transaction-item/stacks-transaction-status.tsx index e34e8e69c81..65f43d93971 100644 --- a/src/app/components/stacks-transaction-item/stacks-transaction-status.tsx +++ b/src/app/components/stacks-transaction-item/stacks-transaction-status.tsx @@ -1,8 +1,8 @@ import { StacksTx } from '@leather-wallet/models'; +import { Caption } from '@leather-wallet/ui'; import { isPendingTx } from '@app/common/transactions/stacks/transaction.utils'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { Caption } from '@app/ui/components/typography/caption'; const pendingWaitingMessage = 'This transaction is waiting to be confirmed. Depending on network congestion, this may take anywhere from a few minutes, to a couple of hours.'; diff --git a/src/app/components/transaction-item/transaction-item.layout.tsx b/src/app/components/transaction-item/transaction-item.layout.tsx index f39a4ff6b85..968b168396c 100644 --- a/src/app/components/transaction-item/transaction-item.layout.tsx +++ b/src/app/components/transaction-item/transaction-item.layout.tsx @@ -2,9 +2,7 @@ import { ReactNode } from 'react'; import { HStack, styled } from 'leather-styles/jsx'; -import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; -import { Caption } from '@app/ui/components/typography/caption'; -import { Pressable } from '@app/ui/pressable/pressable'; +import { Caption, ItemLayout, Pressable } from '@leather-wallet/ui'; interface TransactionItemLayoutProps { openTxLink(): void; diff --git a/src/app/components/transaction/token-transfer-icon.tsx b/src/app/components/transaction/token-transfer-icon.tsx index c16af5d85d9..c68b4d335d7 100644 --- a/src/app/components/transaction/token-transfer-icon.tsx +++ b/src/app/components/transaction/token-transfer-icon.tsx @@ -1,8 +1,7 @@ import { StacksTx } from '@leather-wallet/models'; +import { ArrowDownIcon, ArrowUpIcon } from '@leather-wallet/ui'; import { useCurrentStacksAccountAddress } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; -import { ArrowDownIcon } from '@app/ui/icons/arrow-down-icon'; -import { ArrowUpIcon } from '@app/ui/icons/arrow-up-icon'; export function TokenTransferIcon(props: { tx: StacksTx }) { const { tx } = props; diff --git a/src/app/components/transaction/transaction-icon.tsx b/src/app/components/transaction/transaction-icon.tsx index 6a6a02f0bab..6ed7152da0f 100644 --- a/src/app/components/transaction/transaction-icon.tsx +++ b/src/app/components/transaction/transaction-icon.tsx @@ -1,8 +1,5 @@ import { StacksTx } from '@leather-wallet/models'; - -import { CodeIcon } from '@app/ui/icons/code-icon'; -import { FunctionIcon } from '@app/ui/icons/function-icon'; -import { PlusIcon } from '@app/ui/icons/plus-icon'; +import { CodeIcon, FunctionIcon, PlusIcon } from '@leather-wallet/ui'; import { TokenTransferIcon } from './token-transfer-icon'; diff --git a/src/app/components/transaction/transaction-title.tsx b/src/app/components/transaction/transaction-title.tsx index 2cc5668f7f6..415db29f55a 100644 --- a/src/app/components/transaction/transaction-title.tsx +++ b/src/app/components/transaction/transaction-title.tsx @@ -1,9 +1,10 @@ import { useRef, useState } from 'react'; +import { Title } from '@leather-wallet/ui'; +import { spamFilter } from '@leather-wallet/utils'; + import { useOnResizeListener } from '@app/common/hooks/use-on-resize-listener'; -import { spamFilter } from '@app/common/utils/spam-filter'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { Title } from '@app/ui/components/typography/title'; interface TransactionTitleProps { title: string; diff --git a/src/app/features/activity-list/components/no-account-activity.tsx b/src/app/features/activity-list/components/no-account-activity.tsx index fe2706444ca..fe8f3b92719 100644 --- a/src/app/features/activity-list/components/no-account-activity.tsx +++ b/src/app/features/activity-list/components/no-account-activity.tsx @@ -1,7 +1,7 @@ import NoActivity from '@assets/images/no-activity.png'; import { Stack } from 'leather-styles/jsx'; -import { Caption } from '@app/ui/components/typography/caption'; +import { Caption } from '@leather-wallet/ui'; export function NoAccountActivity() { return ( diff --git a/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-icon.tsx b/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-icon.tsx index 9ee05f71f15..d9e10e86313 100644 --- a/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-icon.tsx +++ b/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-icon.tsx @@ -2,12 +2,12 @@ import { PayloadType, StacksTransaction, addressToString } from '@stacks/transac import { CircleProps } from 'leather-styles/jsx'; import { StacksTx } from '@leather-wallet/models'; +import { DynamicColorCircle } from '@leather-wallet/ui'; import { getTxSenderAddress } from '@app/common/transactions/stacks/transaction.utils'; import { TransactionIconWrapper } from '@app/components/transaction/transaction-icon-wrapper'; import { TransactionTypeIcon } from '@app/components/transaction/transaction-type-icon'; import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon'; -import { DynamicColorCircle } from '@app/ui/components/dynamic-color-circle'; interface SubmittedTransactionIconProps extends CircleProps { transaction: StacksTransaction; diff --git a/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-item.tsx b/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-item.tsx index a85291a490b..466e291c5f1 100644 --- a/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-item.tsx +++ b/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-item.tsx @@ -1,15 +1,14 @@ import { StacksTransaction } from '@stacks/transactions'; import { HStack, styled } from 'leather-styles/jsx'; +import { Caption, ItemLayout, Pressable } from '@leather-wallet/ui'; + import { analytics } from '@shared/utils/analytics'; import { useStacksExplorerLink } from '@app/common/hooks/use-stacks-explorer-link'; import { getTxSenderAddress } from '@app/common/transactions/stacks/transaction.utils'; import { TransactionTitle } from '@app/components/transaction/transaction-title'; -import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { Caption } from '@app/ui/components/typography/caption'; -import { Pressable } from '@app/ui/pressable/pressable'; import { SubmittedTransactionIcon } from './submitted-transaction-icon'; import { getSubmittedTransactionDetails } from './submitted-transaction-list.utils'; diff --git a/src/app/features/activity-list/components/transaction-list/stacks-transaction/ft-transfer-item.tsx b/src/app/features/activity-list/components/transaction-list/stacks-transaction/ft-transfer-item.tsx index 995c26884fe..cdcf6ff9c1f 100644 --- a/src/app/features/activity-list/components/transaction-list/stacks-transaction/ft-transfer-item.tsx +++ b/src/app/features/activity-list/components/transaction-list/stacks-transaction/ft-transfer-item.tsx @@ -2,6 +2,7 @@ import type { AddressTransactionWithTransfers } from '@stacks/stacks-blockchain- import { FtTransfer } from '@leather-wallet/models'; import { isFtAsset, useGetFungibleTokenMetadataQuery } from '@leather-wallet/query'; +import { ArrowDownIcon, ArrowUpIcon } from '@leather-wallet/ui'; import { logger } from '@shared/logger'; @@ -14,8 +15,6 @@ import { getPrincipalFromContractId } from '@app/common/utils'; import { StacksAssetAvatar } from '@app/components/stacks-asset-avatar'; import { StacksTransactionItem } from '@app/components/stacks-transaction-item/stacks-transaction-item'; import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; -import { ArrowDownIcon } from '@app/ui/icons/arrow-down-icon'; -import { ArrowUpIcon } from '@app/ui/icons/arrow-up-icon'; import { TxTransferIconWrapper } from './tx-transfer-icon-wrapper'; diff --git a/src/app/features/activity-list/components/transaction-list/stacks-transaction/stx-transfer-item.tsx b/src/app/features/activity-list/components/transaction-list/stacks-transaction/stx-transfer-item.tsx index 5fac8c5659f..fa8f25ef98f 100644 --- a/src/app/features/activity-list/components/transaction-list/stacks-transaction/stx-transfer-item.tsx +++ b/src/app/features/activity-list/components/transaction-list/stacks-transaction/stx-transfer-item.tsx @@ -1,13 +1,12 @@ import type { AddressTransactionWithTransfers } from '@stacks/stacks-blockchain-api-types'; import type { StxTransfer } from '@leather-wallet/models'; +import { ArrowDownIcon, ArrowUpIcon } from '@leather-wallet/ui'; import { stacksValue } from '@app/common/stacks-utils'; import { getTxCaption } from '@app/common/transactions/stacks/transaction.utils'; import { StacksTransactionItem } from '@app/components/stacks-transaction-item/stacks-transaction-item'; import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; -import { ArrowDownIcon } from '@app/ui/icons/arrow-down-icon'; -import { ArrowUpIcon } from '@app/ui/icons/arrow-up-icon'; import { TxTransferIconWrapper } from './tx-transfer-icon-wrapper'; diff --git a/src/app/features/add-network/add-network-form.tsx b/src/app/features/add-network/add-network-form.tsx index d9b3d6feace..607a89ba5a8 100644 --- a/src/app/features/add-network/add-network-form.tsx +++ b/src/app/features/add-network/add-network-form.tsx @@ -5,12 +5,14 @@ import { useFormikContext } from 'formik'; import { HStack, styled } from 'leather-styles/jsx'; import type { BitcoinNetworkModes } from '@leather-wallet/models'; - -import { Input } from '@app/ui/components/input/input'; -import { Select } from '@app/ui/components/select/select'; -import { SelectItemLayout } from '@app/ui/components/select/select-item.layout'; -import { Title } from '@app/ui/components/typography/title'; -import { CheckmarkIcon, ChevronDownIcon } from '@app/ui/icons'; +import { + CheckmarkIcon, + ChevronDownIcon, + Input, + Select, + SelectItemLayout, + Title, +} from '@leather-wallet/ui'; import { type AddNetworkFormValues } from './use-add-network'; diff --git a/src/app/features/add-network/add-network.tsx b/src/app/features/add-network/add-network.tsx index c3f180c9e92..2e39114a36e 100644 --- a/src/app/features/add-network/add-network.tsx +++ b/src/app/features/add-network/add-network.tsx @@ -2,8 +2,9 @@ import { NetworkSelectors } from '@tests/selectors/network.selectors'; import { Form, Formik } from 'formik'; import { Stack, styled } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; + import { ErrorLabel } from '@app/components/error-label'; -import { Button } from '@app/ui/components/button/button'; import { Card } from '@app/ui/layout/card/card'; import { Page } from '@app/ui/layout/page/page.layout'; diff --git a/src/app/features/asset-list/_components/connect-ledger-asset-button.tsx b/src/app/features/asset-list/_components/connect-ledger-asset-button.tsx index 70450ed08b7..a128951c13a 100644 --- a/src/app/features/asset-list/_components/connect-ledger-asset-button.tsx +++ b/src/app/features/asset-list/_components/connect-ledger-asset-button.tsx @@ -3,13 +3,12 @@ import { useNavigate } from 'react-router-dom'; import { styled } from 'leather-styles/jsx'; import type { Blockchains } from '@leather-wallet/models'; +import { Button, LedgerIcon } from '@leather-wallet/ui'; import { RouteUrls } from '@shared/route-urls'; import { capitalize } from '@app/common/utils'; import { immediatelyAttemptLedgerConnection } from '@app/features/ledger/hooks/use-when-reattempt-ledger-connection'; -import { Button } from '@app/ui/components/button/button'; -import { LedgerIcon } from '@app/ui/icons/ledger-icon'; interface ConnectLedgerButtonProps { chain: Blockchains; diff --git a/src/app/features/asset-list/_components/connect-ledger-asset-item-fallback.tsx b/src/app/features/asset-list/_components/connect-ledger-asset-item-fallback.tsx index 4037d0300db..51cc1bb6268 100644 --- a/src/app/features/asset-list/_components/connect-ledger-asset-item-fallback.tsx +++ b/src/app/features/asset-list/_components/connect-ledger-asset-item-fallback.tsx @@ -1,11 +1,10 @@ import type React from 'react'; import type { Blockchains, Currencies } from '@leather-wallet/models'; +import { ItemLayout, Pressable } from '@leather-wallet/ui'; import { capitalize } from '@app/common/utils'; import { useCheckLedgerBlockchainAvailable } from '@app/store/accounts/blockchain/utils'; -import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; -import { Pressable } from '@app/ui/pressable/pressable'; import type { AssetListVariant } from '../asset-list'; import { ConnectLedgerButton } from './connect-ledger-asset-button'; diff --git a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx index 7cb582b57e7..f58a552d1ca 100644 --- a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx +++ b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx @@ -1,8 +1,8 @@ import type { CryptoAssetBalance, MarketData, Sip10CryptoAssetInfo } from '@leather-wallet/models'; +import { spamFilter } from '@leather-wallet/utils'; import { convertAssetBalanceToFiat } from '@app/common/asset-utils'; import { getSafeImageCanonicalUri } from '@app/common/stacks-utils'; -import { spamFilter } from '@app/common/utils/spam-filter'; import { CryptoAssetItemLayout } from '@app/components/crypto-asset-item/crypto-asset-item.layout'; import { StacksAssetAvatar } from '@app/components/stacks-asset-avatar'; diff --git a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list-unsupported.tsx b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list-unsupported.tsx index b5aaf71fed9..507090b5669 100644 --- a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list-unsupported.tsx +++ b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-list-unsupported.tsx @@ -6,8 +6,7 @@ import { type Sip10TokenAssetDetails, useAlexCurrencyPriceAsMarketData, } from '@leather-wallet/query'; - -import { Accordion } from '@app/ui/components/accordion/accordion'; +import { Accordion } from '@leather-wallet/ui'; import { Sip10TokenAssetItem } from './sip10-token-asset-item'; diff --git a/src/app/features/asset-list/stacks/stx-crypo-asset-item/stx-crypto-asset-item.tsx b/src/app/features/asset-list/stacks/stx-crypo-asset-item/stx-crypto-asset-item.tsx index 9f1b525bc6e..6c47bddf95e 100644 --- a/src/app/features/asset-list/stacks/stx-crypo-asset-item/stx-crypto-asset-item.tsx +++ b/src/app/features/asset-list/stacks/stx-crypo-asset-item/stx-crypto-asset-item.tsx @@ -2,6 +2,7 @@ import { styled } from 'leather-styles/jsx'; import type { StxCryptoAssetBalance } from '@leather-wallet/models'; import { useCryptoCurrencyMarketDataMeanAverage } from '@leather-wallet/query'; +import { Caption } from '@leather-wallet/ui'; import { baseCurrencyAmountInQuote, formatMoneyWithoutSymbol, @@ -10,7 +11,6 @@ import { import { CryptoAssetItemLayout } from '@app/components/crypto-asset-item/crypto-asset-item.layout'; import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon'; -import { Caption } from '@app/ui/components/typography/caption'; interface StxCryptoAssetItemProps { balance: StxCryptoAssetBalance; diff --git a/src/app/features/collectibles/components/_collectible-types/collectible-audio.tsx b/src/app/features/collectibles/components/_collectible-types/collectible-audio.tsx index c2b4b90fd6c..165d7d029b0 100644 --- a/src/app/features/collectibles/components/_collectible-types/collectible-audio.tsx +++ b/src/app/features/collectibles/components/_collectible-types/collectible-audio.tsx @@ -1,6 +1,6 @@ import { ReactNode } from 'react'; -import { HeadsetIcon } from '@app/ui/icons/headset-icon'; +import { HeadsetIcon } from '@leather-wallet/ui'; import { CollectibleItemLayout, CollectibleItemLayoutProps } from '../collectible-item.layout'; import { CollectiblePlaceholderLayout } from './collectible-placeholder.layout'; diff --git a/src/app/features/collectibles/components/add-collectible.tsx b/src/app/features/collectibles/components/add-collectible.tsx index 9d220c21e80..2c873e7e029 100644 --- a/src/app/features/collectibles/components/add-collectible.tsx +++ b/src/app/features/collectibles/components/add-collectible.tsx @@ -1,10 +1,10 @@ import { useLocation, useNavigate } from 'react-router-dom'; +import { PlusIcon } from '@leather-wallet/ui'; + import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; -import { PlusIcon } from '@app/ui/icons/plus-icon'; - import { CollectibleItemLayout } from './collectible-item.layout'; export function AddCollectible() { diff --git a/src/app/features/collectibles/components/collectible-hover.tsx b/src/app/features/collectibles/components/collectible-hover.tsx index 6e99283a962..2b6dbe85418 100644 --- a/src/app/features/collectibles/components/collectible-hover.tsx +++ b/src/app/features/collectibles/components/collectible-hover.tsx @@ -2,7 +2,7 @@ import { ReactNode } from 'react'; import { Box, styled } from 'leather-styles/jsx'; -import { ArrowUpIcon } from '@app/ui/icons/arrow-up-icon'; +import { ArrowUpIcon } from '@leather-wallet/ui'; interface CollectibleHoverProps { collectibleTypeIcon?: ReactNode; diff --git a/src/app/features/collectibles/components/collectible.layout.tsx b/src/app/features/collectibles/components/collectible.layout.tsx index 460cd484f6d..8316cf84581 100644 --- a/src/app/features/collectibles/components/collectible.layout.tsx +++ b/src/app/features/collectibles/components/collectible.layout.tsx @@ -1,9 +1,9 @@ import { Flex, Grid, HStack, styled } from 'leather-styles/jsx'; import { token } from 'leather-styles/tokens'; +import { RefreshIcon, Spinner } from '@leather-wallet/ui'; + import { LoadingSpinner } from '@app/components/loading-spinner'; -import { Spinner } from '@app/ui/components/spinner'; -import { RefreshIcon } from '@app/ui/icons/refresh-icon'; interface CollectiblesLayoutProps { title: string; diff --git a/src/app/features/collectibles/components/image-unavailable.tsx b/src/app/features/collectibles/components/image-unavailable.tsx index 309beed9a49..b31a9a7d2bd 100644 --- a/src/app/features/collectibles/components/image-unavailable.tsx +++ b/src/app/features/collectibles/components/image-unavailable.tsx @@ -1,6 +1,6 @@ import { styled } from 'leather-styles/jsx'; -import { EyeSlashIcon } from '@app/ui/icons/eye-slash-icon'; +import { EyeSlashIcon } from '@leather-wallet/ui'; import { CollectiblePlaceholderLayout } from './_collectible-types/collectible-placeholder.layout'; diff --git a/src/app/features/collectibles/components/taproot-balance-displayer.tsx b/src/app/features/collectibles/components/taproot-balance-displayer.tsx index 7ebf853c6bf..21e6a70ddf5 100644 --- a/src/app/features/collectibles/components/taproot-balance-displayer.tsx +++ b/src/app/features/collectibles/components/taproot-balance-displayer.tsx @@ -1,11 +1,11 @@ import { useCurrentTaprootAccountBalance } from '@leather-wallet/query'; +import { Link } from '@leather-wallet/ui'; import { formatMoney } from '@leather-wallet/utils'; import { useRecoverUninscribedTaprootUtxosFeatureEnabled } from '@app/query/common/remote-config/remote-config.query'; import { useCurrentAccountIndex } from '@app/store/accounts/account'; import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { useCurrentTaprootAccount } from '@app/store/accounts/blockchain/bitcoin/taproot-account.hooks'; -import { Link } from '@app/ui/components/link/link'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; const taprootSpendNotSupportedYetMsg = ` diff --git a/src/app/features/container/container.tsx b/src/app/features/container/container.tsx index b1c02332cfa..48df32b34f7 100644 --- a/src/app/features/container/container.tsx +++ b/src/app/features/container/container.tsx @@ -6,6 +6,8 @@ import { OnboardingSelectors } from '@tests/selectors/onboarding.selectors'; import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { Box } from 'leather-styles/jsx'; +import { Flag, HamburgerIcon, Logo, NetworkModeBadge } from '@leather-wallet/ui'; + import { RouteUrls } from '@shared/route-urls'; import { closeWindow } from '@shared/utils'; import { analytics } from '@shared/utils/analytics'; @@ -21,11 +23,7 @@ import { useOnWalletLock } from '@app/routes/hooks/use-on-wallet-lock'; import { useHasStateRehydrated } from '@app/store'; import { useCurrentNetworkState } from '@app/store/networks/networks.hooks'; import { ContainerLayout } from '@app/ui/components/containers/container.layout'; -import { NetworkModeBadge } from '@app/ui/components/containers/headers/components/network-mode-badge'; import { Header } from '@app/ui/components/containers/headers/header'; -import { Flag } from '@app/ui/components/flag/flag'; -import { Logo } from '@app/ui/components/logo'; -import { HamburgerIcon } from '@app/ui/icons/'; import { useRestoreFormState } from '../popup-send-form-restoration/use-restore-form-state'; import { Settings } from '../settings/settings'; diff --git a/src/app/features/dialogs/edit-nonce-dialog/components/edit-nonce-field.tsx b/src/app/features/dialogs/edit-nonce-dialog/components/edit-nonce-field.tsx index de37a000648..9c4af2900f4 100644 --- a/src/app/features/dialogs/edit-nonce-dialog/components/edit-nonce-field.tsx +++ b/src/app/features/dialogs/edit-nonce-dialog/components/edit-nonce-field.tsx @@ -3,8 +3,9 @@ import { FormEvent, memo } from 'react'; import { useField } from 'formik'; import { Stack, StackProps } from 'leather-styles/jsx'; +import { Input } from '@leather-wallet/ui'; + import { ErrorLabel } from '@app/components/error-label'; -import { Input } from '@app/ui/components/input/input'; interface EditNonceFieldProps extends StackProps { onBlur(): void; diff --git a/src/app/features/dialogs/edit-nonce-dialog/components/edit-nonce-form.tsx b/src/app/features/dialogs/edit-nonce-dialog/components/edit-nonce-form.tsx index 8d1d37dbff1..9baef7620bd 100644 --- a/src/app/features/dialogs/edit-nonce-dialog/components/edit-nonce-form.tsx +++ b/src/app/features/dialogs/edit-nonce-dialog/components/edit-nonce-form.tsx @@ -1,6 +1,6 @@ import { HStack } from 'leather-styles/jsx'; -import { Button } from '@app/ui/components/button/button'; +import { Button } from '@leather-wallet/ui'; import { EditNonceField } from './edit-nonce-field'; diff --git a/src/app/features/dialogs/edit-nonce-dialog/edit-nonce-dialog.tsx b/src/app/features/dialogs/edit-nonce-dialog/edit-nonce-dialog.tsx index 92bce3793d0..c2306a84c87 100644 --- a/src/app/features/dialogs/edit-nonce-dialog/edit-nonce-dialog.tsx +++ b/src/app/features/dialogs/edit-nonce-dialog/edit-nonce-dialog.tsx @@ -4,13 +4,14 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { useFormikContext } from 'formik'; import { Stack, styled } from 'leather-styles/jsx'; +import { Link } from '@leather-wallet/ui'; + import { StacksSendFormValues, StacksTransactionFormValues } from '@shared/models/form.model'; import { useOnMount } from '@app/common/hooks/use-on-mount'; import { openInNewTab } from '@app/common/utils/open-in-new-tab'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; -import { Link } from '@app/ui/components/link/link'; import { EditNonceForm } from './components/edit-nonce-form'; diff --git a/src/app/features/dialogs/high-fee-dialog/high-fee-dialog.tsx b/src/app/features/dialogs/high-fee-dialog/high-fee-dialog.tsx index 8b0a1aff694..0741fa87fc9 100644 --- a/src/app/features/dialogs/high-fee-dialog/high-fee-dialog.tsx +++ b/src/app/features/dialogs/high-fee-dialog/high-fee-dialog.tsx @@ -3,6 +3,8 @@ import { useEffect, useState } from 'react'; import { useFormikContext } from 'formik'; import { HStack, Stack } from 'leather-styles/jsx'; +import { Button, Caption, ErrorIcon, Link, Title } from '@leather-wallet/ui'; + import { BitcoinSendFormValues, StacksSendFormValues, @@ -10,14 +12,9 @@ import { } from '@shared/models/form.model'; import { openInNewTab } from '@app/common/utils/open-in-new-tab'; -import { Button } from '@app/ui/components/button/button'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; -import { Link } from '@app/ui/components/link/link'; -import { Caption } from '@app/ui/components/typography/caption'; -import { Title } from '@app/ui/components/typography/title'; -import { ErrorIcon } from '@app/ui/icons'; interface HighFeeDialogProps { learnMoreUrl: string; diff --git a/src/app/features/dialogs/increase-fee-dialog/components/increase-fee-actions.tsx b/src/app/features/dialogs/increase-fee-dialog/components/increase-fee-actions.tsx index f00b31b7c37..fd1c4417b4f 100644 --- a/src/app/features/dialogs/increase-fee-dialog/components/increase-fee-actions.tsx +++ b/src/app/features/dialogs/increase-fee-dialog/components/increase-fee-actions.tsx @@ -1,7 +1,8 @@ import { useFormikContext } from 'formik'; +import { Button } from '@leather-wallet/ui'; + import { useWalletType } from '@app/common/use-wallet-type'; -import { Button } from '@app/ui/components/button/button'; interface IncreaseFeeActionsProps { isBroadcasting?: boolean; diff --git a/src/app/features/dialogs/increase-fee-dialog/increase-btc-fee-dialog.tsx b/src/app/features/dialogs/increase-fee-dialog/increase-btc-fee-dialog.tsx index 5ae2edb5e38..2f9914bcc3b 100644 --- a/src/app/features/dialogs/increase-fee-dialog/increase-btc-fee-dialog.tsx +++ b/src/app/features/dialogs/increase-fee-dialog/increase-btc-fee-dialog.tsx @@ -5,6 +5,7 @@ import { Formik } from 'formik'; import { Flex, Stack } from 'leather-styles/jsx'; import type { BitcoinTx } from '@leather-wallet/models'; +import { Caption, Spinner } from '@leather-wallet/ui'; import { btcToSat, createMoney, formatMoney } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; @@ -18,8 +19,6 @@ import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/account import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; -import { Spinner } from '@app/ui/components/spinner'; -import { Caption } from '@app/ui/components/typography/caption'; import { IncreaseFeeActions } from './components/increase-fee-actions'; import { useBtcIncreaseFee } from './hooks/use-btc-increase-fee'; diff --git a/src/app/features/dialogs/increase-fee-dialog/increase-stx-fee-dialog.tsx b/src/app/features/dialogs/increase-fee-dialog/increase-stx-fee-dialog.tsx index 94544f14228..ce2d4f8cac6 100644 --- a/src/app/features/dialogs/increase-fee-dialog/increase-stx-fee-dialog.tsx +++ b/src/app/features/dialogs/increase-fee-dialog/increase-stx-fee-dialog.tsx @@ -12,6 +12,7 @@ import { useStxAvailableUnlockedBalance, useTransactionById, } from '@leather-wallet/query'; +import { Caption, Spinner } from '@leather-wallet/ui'; import { microStxToStx, stxToMicroStx } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; @@ -29,8 +30,6 @@ import { useSubmittedTransactionsActions } from '@app/store/submitted-transactio import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; -import { Spinner } from '@app/ui/components/spinner'; -import { Caption } from '@app/ui/components/typography/caption'; import { IncreaseFeeActions } from './components/increase-fee-actions'; import { IncreaseFeeField } from './components/increase-fee-field'; diff --git a/src/app/features/dialogs/leather-intro-dialog/leather-intro-steps.tsx b/src/app/features/dialogs/leather-intro-dialog/leather-intro-steps.tsx index 53312a25d0a..ff458c94efe 100644 --- a/src/app/features/dialogs/leather-intro-dialog/leather-intro-steps.tsx +++ b/src/app/features/dialogs/leather-intro-dialog/leather-intro-steps.tsx @@ -5,9 +5,10 @@ import { Dialog, Inset } from '@radix-ui/themes'; import { css } from 'leather-styles/css'; import { Box, Flex, Stack, styled } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; + import { HasChildren } from '@app/common/has-children'; import { openInNewTab } from '@app/common/utils/open-in-new-tab'; -import { Button } from '@app/ui/components/button/button'; import { confettiConfig } from './confetti-config'; import { useLeatherIntroDialogContext } from './leather-intro-dialog'; diff --git a/src/app/features/dialogs/switch-account-dialog/switch-account-dialog.tsx b/src/app/features/dialogs/switch-account-dialog/switch-account-dialog.tsx index a8cbd427f32..ca66591936a 100644 --- a/src/app/features/dialogs/switch-account-dialog/switch-account-dialog.tsx +++ b/src/app/features/dialogs/switch-account-dialog/switch-account-dialog.tsx @@ -3,12 +3,13 @@ import { Virtuoso } from 'react-virtuoso'; import { Box } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; + import { useCreateAccount } from '@app/common/hooks/account/use-create-account'; import { useWalletType } from '@app/common/use-wallet-type'; import { useCurrentAccountIndex } from '@app/store/accounts/account'; import { useFilteredBitcoinAccounts } from '@app/store/accounts/blockchain/bitcoin/bitcoin.ledger'; import { useStacksAccounts } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; -import { Button } from '@app/ui/components/button/button'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; diff --git a/src/app/features/errors/app-error-boundary.tsx b/src/app/features/errors/app-error-boundary.tsx index 2ff75775a6e..e1ea2c21ebc 100644 --- a/src/app/features/errors/app-error-boundary.tsx +++ b/src/app/features/errors/app-error-boundary.tsx @@ -4,15 +4,13 @@ import BroadcastError from '@assets/images/unhappy-face-ui.png'; import { SharedComponentsSelectors } from '@tests/selectors/shared-component.selectors'; import { Box, Flex, HStack, styled } from 'leather-styles/jsx'; +import { Button, CopyIcon, Link } from '@leather-wallet/ui'; import { isError } from '@leather-wallet/utils'; import { Prism } from '@app/common/clarity-prism'; import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { compliantErrorBody } from '@app/query/common/compliance-checker/compliance-checker.query'; -import { Button } from '@app/ui/components/button/button'; import { CodeBlock } from '@app/ui/components/codeblock'; -import { Link } from '@app/ui/components/link/link'; -import { CopyIcon } from '@app/ui/icons'; import { useToast } from '../toasts/use-toast'; diff --git a/src/app/features/errors/requesting-tab-closed-error-msg.tsx b/src/app/features/errors/requesting-tab-closed-error-msg.tsx index 94683a542ac..0d4127f6b0a 100644 --- a/src/app/features/errors/requesting-tab-closed-error-msg.tsx +++ b/src/app/features/errors/requesting-tab-closed-error-msg.tsx @@ -1,7 +1,8 @@ import { useState } from 'react'; +import { Callout } from '@leather-wallet/ui'; + import { useOnOriginTabClose } from '@app/routes/hooks/use-on-tab-closed'; -import { Callout } from '@app/ui/components/callout/callout'; export function RequestingTabClosedWarningMessage() { const [hasTabClosed, setHasTabClosed] = useState(false); diff --git a/src/app/features/feedback-button/feedback-button.tsx b/src/app/features/feedback-button/feedback-button.tsx index 74b009d9f2f..256fdf6689f 100644 --- a/src/app/features/feedback-button/feedback-button.tsx +++ b/src/app/features/feedback-button/feedback-button.tsx @@ -1,11 +1,11 @@ import { BrowserClient, Feedback, getCurrentHub } from '@sentry/react'; import { Flex } from 'leather-styles/jsx'; +import { Button, MegaphoneIcon } from '@leather-wallet/ui'; + import { analytics } from '@shared/utils/analytics'; import { useThemeSwitcher } from '@app/common/theme-provider'; -import { Button } from '@app/ui/components/button/button'; -import { MegaphoneIcon } from '@app/ui/icons/megaphone-icon'; export function openFeedbackDialog() { void analytics.track('user_clicked_feedback_button'); diff --git a/src/app/features/hiro-messages/components/in-app-message-item.tsx b/src/app/features/hiro-messages/components/in-app-message-item.tsx index e113b3d6d93..0700912f531 100644 --- a/src/app/features/hiro-messages/components/in-app-message-item.tsx +++ b/src/app/features/hiro-messages/components/in-app-message-item.tsx @@ -1,7 +1,8 @@ import { Box, Flex, styled } from 'leather-styles/jsx'; +import { CloseIcon } from '@leather-wallet/ui'; + import { HiroMessage } from '@app/query/common/remote-config/remote-config.query'; -import { CloseIcon } from '@app/ui/icons/close-icon'; interface HiroMessageItemProps extends HiroMessage { onDismiss(id: string): void; diff --git a/src/app/features/ledger/components/ledger-inline-warnings.tsx b/src/app/features/ledger/components/ledger-inline-warnings.tsx index cffa05399b2..6341b6e4e3d 100644 --- a/src/app/features/ledger/components/ledger-inline-warnings.tsx +++ b/src/app/features/ledger/components/ledger-inline-warnings.tsx @@ -1,8 +1,8 @@ import { styled } from 'leather-styles/jsx'; import type { SupportedBlockchains } from '@leather-wallet/models'; +import { Callout } from '@leather-wallet/ui'; -import { Callout } from '@app/ui/components/callout/callout'; import { Capitalize } from '@app/ui/utils/capitalize'; import { LatestDeviceResponse } from '../utils/generic-ledger-utils'; diff --git a/src/app/features/ledger/components/ledger-screen-detail.tsx b/src/app/features/ledger/components/ledger-screen-detail.tsx index d548484682a..e002b0a51d6 100644 --- a/src/app/features/ledger/components/ledger-screen-detail.tsx +++ b/src/app/features/ledger/components/ledger-screen-detail.tsx @@ -1,8 +1,8 @@ import { Flex, styled } from 'leather-styles/jsx'; +import { Caption, InfoCircleIcon } from '@leather-wallet/ui'; + import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { Caption } from '@app/ui/components/typography/caption'; -import { InfoCircleIcon } from '@app/ui/icons/info-circle-icon'; interface LedgerScreenDetailProps { children: React.ReactNode; diff --git a/src/app/features/ledger/components/looking-for-ledger-label.tsx b/src/app/features/ledger/components/looking-for-ledger-label.tsx index e83415d89b3..d5c9ee54990 100644 --- a/src/app/features/ledger/components/looking-for-ledger-label.tsx +++ b/src/app/features/ledger/components/looking-for-ledger-label.tsx @@ -1,7 +1,6 @@ import { Flex, FlexProps } from 'leather-styles/jsx'; -import { Spinner } from '@app/ui/components/spinner'; -import { Caption } from '@app/ui/components/typography/caption'; +import { Caption, Spinner } from '@leather-wallet/ui'; interface LookingForLedgerLabelProps extends FlexProps { children: React.ReactNode; diff --git a/src/app/features/ledger/components/success-label.tsx b/src/app/features/ledger/components/success-label.tsx index c9da58a1f0b..26ffbb4d57e 100644 --- a/src/app/features/ledger/components/success-label.tsx +++ b/src/app/features/ledger/components/success-label.tsx @@ -1,7 +1,6 @@ import { Flex, FlexProps } from 'leather-styles/jsx'; -import { Caption } from '@app/ui/components/typography/caption'; -import { CheckmarkIcon } from '@app/ui/icons'; +import { Caption, CheckmarkIcon } from '@leather-wallet/ui'; interface LedgerSuccessLabelProps extends FlexProps { children: React.ReactNode; diff --git a/src/app/features/ledger/flows/stacks-tx-signing/steps/contract-principal-bug-warning.tsx b/src/app/features/ledger/flows/stacks-tx-signing/steps/contract-principal-bug-warning.tsx index e9936788671..b0142ba2241 100644 --- a/src/app/features/ledger/flows/stacks-tx-signing/steps/contract-principal-bug-warning.tsx +++ b/src/app/features/ledger/flows/stacks-tx-signing/steps/contract-principal-bug-warning.tsx @@ -1,12 +1,12 @@ import GenericErrorImg from '@assets/images/generic-error.png'; import { Box, HStack, styled } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; import { delay } from '@leather-wallet/utils'; import { useLoading } from '@app/common/hooks/use-loading'; import { LedgerTitle } from '@app/features/ledger/components/ledger-title'; import { LedgerWrapper } from '@app/features/ledger/components/ledger-wrapper'; -import { Button } from '@app/ui/components/button/button'; import { useLedgerTxSigningContext } from '../../../generic-flows/tx-signing/ledger-sign-tx.context'; diff --git a/src/app/features/ledger/generic-steps/broadcast-error/broadcast-error.layout.tsx b/src/app/features/ledger/generic-steps/broadcast-error/broadcast-error.layout.tsx index 5203111ec9b..60db0489e2d 100644 --- a/src/app/features/ledger/generic-steps/broadcast-error/broadcast-error.layout.tsx +++ b/src/app/features/ledger/generic-steps/broadcast-error/broadcast-error.layout.tsx @@ -1,7 +1,7 @@ import BroadcastError from '@assets/images/unhappy-face-ui.png'; import { Box, Flex, styled } from 'leather-styles/jsx'; -import { Button } from '@app/ui/components/button/button'; +import { Button } from '@leather-wallet/ui'; import { LedgerTitle } from '../../components/ledger-title'; import { LedgerWrapper } from '../../components/ledger-wrapper'; diff --git a/src/app/features/ledger/generic-steps/connect-device/connect-ledger-error.layout.tsx b/src/app/features/ledger/generic-steps/connect-device/connect-ledger-error.layout.tsx index 9c3c96ba411..fce53007518 100644 --- a/src/app/features/ledger/generic-steps/connect-device/connect-ledger-error.layout.tsx +++ b/src/app/features/ledger/generic-steps/connect-device/connect-ledger-error.layout.tsx @@ -1,10 +1,8 @@ import { Box, Flex, HStack, Stack, styled } from 'leather-styles/jsx'; +import { Button, Callout, CircleIcon, Link } from '@leather-wallet/ui'; + import { ConnectLedgerErr } from '@app/features/ledger/illustrations/ledger-illu-connect-ledger-error'; -import { Button } from '@app/ui/components/button/button'; -import { Callout } from '@app/ui/components/callout/callout'; -import { Link } from '@app/ui/components/link/link'; -import { CircleIcon } from '@app/ui/icons/circle-icon'; import { LedgerTitle } from '../../components/ledger-title'; import { LedgerWrapper } from '../../components/ledger-wrapper'; diff --git a/src/app/features/ledger/generic-steps/connect-device/connect-ledger.tsx b/src/app/features/ledger/generic-steps/connect-device/connect-ledger.tsx index 5144775e16d..b00765af58c 100644 --- a/src/app/features/ledger/generic-steps/connect-device/connect-ledger.tsx +++ b/src/app/features/ledger/generic-steps/connect-device/connect-ledger.tsx @@ -3,11 +3,9 @@ import { Suspense, lazy, useMemo } from 'react'; import { Box, HStack, Stack, styled } from 'leather-styles/jsx'; import type { SupportedBlockchains } from '@leather-wallet/models'; +import { BitcoinIcon, Button, Link, StacksIcon } from '@leather-wallet/ui'; import { Divider } from '@app/components/layout/divider'; -import { Button } from '@app/ui/components/button/button'; -import { Link } from '@app/ui/components/link/link'; -import { BitcoinIcon, StacksIcon } from '@app/ui/icons'; import { LedgerWrapper } from '../../components/ledger-wrapper'; diff --git a/src/app/features/ledger/generic-steps/invalid-payload/device-invalid-payload.layout.tsx b/src/app/features/ledger/generic-steps/invalid-payload/device-invalid-payload.layout.tsx index 17c64e0599b..6ff70b9b7d1 100644 --- a/src/app/features/ledger/generic-steps/invalid-payload/device-invalid-payload.layout.tsx +++ b/src/app/features/ledger/generic-steps/invalid-payload/device-invalid-payload.layout.tsx @@ -1,7 +1,8 @@ import { Box, Flex, styled } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; + import { ConnectLedgerErr } from '@app/features/ledger/illustrations/ledger-illu-connect-ledger-error'; -import { Button } from '@app/ui/components/button/button'; import { LedgerWrapper } from '../../components/ledger-wrapper'; diff --git a/src/app/features/ledger/generic-steps/ledger-disconnected/ledger-disconnected.layout.tsx b/src/app/features/ledger/generic-steps/ledger-disconnected/ledger-disconnected.layout.tsx index 5549aa5532e..57d8999f176 100644 --- a/src/app/features/ledger/generic-steps/ledger-disconnected/ledger-disconnected.layout.tsx +++ b/src/app/features/ledger/generic-steps/ledger-disconnected/ledger-disconnected.layout.tsx @@ -1,6 +1,6 @@ import { Box, HStack } from 'leather-styles/jsx'; -import { Button } from '@app/ui/components/button/button'; +import { Button } from '@leather-wallet/ui'; import { LedgerTitle } from '../../components/ledger-title'; import { LedgerWrapper } from '../../components/ledger-wrapper'; diff --git a/src/app/features/ledger/generic-steps/operation-rejected/operation-rejected.layout.tsx b/src/app/features/ledger/generic-steps/operation-rejected/operation-rejected.layout.tsx index ae0b8ef13b4..8f7f7de89a4 100644 --- a/src/app/features/ledger/generic-steps/operation-rejected/operation-rejected.layout.tsx +++ b/src/app/features/ledger/generic-steps/operation-rejected/operation-rejected.layout.tsx @@ -1,7 +1,8 @@ import { Box } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; + import { LedgerTxRejected } from '@app/features/ledger/illustrations/ledger-illu-transaction-rejected'; -import { Button } from '@app/ui/components/button/button'; import { LedgerTitle } from '../../components/ledger-title'; import { LedgerWrapper } from '../../components/ledger-wrapper'; diff --git a/src/app/features/ledger/generic-steps/public-key-mismatch/public-key-mismatch.layout.tsx b/src/app/features/ledger/generic-steps/public-key-mismatch/public-key-mismatch.layout.tsx index cf95b8df2cc..5b790440e1c 100644 --- a/src/app/features/ledger/generic-steps/public-key-mismatch/public-key-mismatch.layout.tsx +++ b/src/app/features/ledger/generic-steps/public-key-mismatch/public-key-mismatch.layout.tsx @@ -1,7 +1,8 @@ import { Box, Flex, styled } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; + import { ConnectLedgerErr } from '@app/features/ledger/illustrations/ledger-illu-connect-ledger-error'; -import { Button } from '@app/ui/components/button/button'; import { LedgerWrapper } from '../../components/ledger-wrapper'; diff --git a/src/app/features/ledger/generic-steps/unsupported-browser/unsupported-browser.layout.tsx b/src/app/features/ledger/generic-steps/unsupported-browser/unsupported-browser.layout.tsx index 602dba1862b..f71b0e132e9 100644 --- a/src/app/features/ledger/generic-steps/unsupported-browser/unsupported-browser.layout.tsx +++ b/src/app/features/ledger/generic-steps/unsupported-browser/unsupported-browser.layout.tsx @@ -2,10 +2,11 @@ import { useNavigate } from 'react-router-dom'; import { styled } from 'leather-styles/jsx'; +import { Link } from '@leather-wallet/ui'; + import { UnsupportedBrowserImg } from '@app/features/ledger/illustrations/ledger-illu-unsupported-browser'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; -import { Link } from '@app/ui/components/link/link'; import { LedgerTitle } from '../../components/ledger-title'; import { LedgerWrapper } from '../../components/ledger-wrapper'; diff --git a/src/app/features/message-signer/hash-drawer.tsx b/src/app/features/message-signer/hash-drawer.tsx index 245d4f9aaac..4ba8fbf2de7 100644 --- a/src/app/features/message-signer/hash-drawer.tsx +++ b/src/app/features/message-signer/hash-drawer.tsx @@ -2,8 +2,7 @@ import { useState } from 'react'; import { Box, styled } from 'leather-styles/jsx'; -import { ChevronDownIcon } from '@app/ui/icons/chevron-down-icon'; -import { ChevronUpIcon } from '@app/ui/icons/chevron-up-icon'; +import { ChevronDownIcon, ChevronUpIcon } from '@leather-wallet/ui'; interface ShowHashButtonProps { expanded: boolean; diff --git a/src/app/features/message-signer/message-signing-header.tsx b/src/app/features/message-signer/message-signing-header.tsx index ba5794432e1..76835b71edf 100644 --- a/src/app/features/message-signer/message-signing-header.tsx +++ b/src/app/features/message-signer/message-signing-header.tsx @@ -1,9 +1,10 @@ import { Stack, styled } from 'leather-styles/jsx'; +import { Flag } from '@leather-wallet/ui'; + import { addPortSuffix, getUrlHostname } from '@app/common/utils'; import { Favicon } from '@app/components/favicon'; import { useCurrentNetworkState } from '@app/store/networks/networks.hooks'; -import { Flag } from '@app/ui/components/flag/flag'; interface MessageSigningHeaderProps { name?: string; diff --git a/src/app/features/message-signer/stacks-sign-message-action.tsx b/src/app/features/message-signer/stacks-sign-message-action.tsx index 29545f98539..78a11291d5f 100644 --- a/src/app/features/message-signer/stacks-sign-message-action.tsx +++ b/src/app/features/message-signer/stacks-sign-message-action.tsx @@ -1,7 +1,8 @@ import { HStack } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; + import { useWalletType } from '@app/common/use-wallet-type'; -import { Button } from '@app/ui/components/button/button'; interface StacksSignMessageActionsProps { onSignMessage(): void; diff --git a/src/app/features/pending-brc-20-transfers/pending-brc-20-transfers.tsx b/src/app/features/pending-brc-20-transfers/pending-brc-20-transfers.tsx index 48722c5a126..dae78bbf4d8 100644 --- a/src/app/features/pending-brc-20-transfers/pending-brc-20-transfers.tsx +++ b/src/app/features/pending-brc-20-transfers/pending-brc-20-transfers.tsx @@ -3,6 +3,7 @@ import { useNavigate } from 'react-router-dom'; import { Box, Flex, HStack, Stack } from 'leather-styles/jsx'; import { fetchInscripionById, useOrdinalsbotClient } from '@leather-wallet/query'; +import { BulletSeparator, Caption, Flag } from '@leather-wallet/ui'; import { noop } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; @@ -17,10 +18,7 @@ import { PendingBrc20Transfer, usePendingBrc20Transfers, } from '@app/store/ordinals/ordinals.slice'; -import { BulletSeparator } from '@app/ui/components/bullet-separator/bullet-separator'; -import { Flag } from '@app/ui/components/flag/flag'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { Caption } from '@app/ui/components/typography/caption'; function StatusIcon({ status }: { status: OrdinalsbotInscriptionStatus }) { switch (status) { diff --git a/src/app/features/psbt-signer/components/psbt-inputs-and-outputs/components/psbt-input-output-item.layout.tsx b/src/app/features/psbt-signer/components/psbt-inputs-and-outputs/components/psbt-input-output-item.layout.tsx index 37469fc99f5..2d62c99bb15 100644 --- a/src/app/features/psbt-signer/components/psbt-inputs-and-outputs/components/psbt-input-output-item.layout.tsx +++ b/src/app/features/psbt-signer/components/psbt-inputs-and-outputs/components/psbt-input-output-item.layout.tsx @@ -1,11 +1,10 @@ import { Box, Flex, HStack, styled } from 'leather-styles/jsx'; +import { CopyIcon, Flag, Link } from '@leather-wallet/ui'; + import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; -import { Flag } from '@app/ui/components/flag/flag'; -import { Link } from '@app/ui/components/link/link'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; interface PsbtInputOutputItemLayoutProps { address: string; diff --git a/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-address-total-item.tsx b/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-address-total-item.tsx index d784399e901..02687975058 100644 --- a/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-address-total-item.tsx +++ b/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-address-total-item.tsx @@ -1,11 +1,10 @@ import { Box, HStack, styled } from 'leather-styles/jsx'; +import { CopyIcon, Flag, Link } from '@leather-wallet/ui'; + import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon'; -import { Flag } from '@app/ui/components/flag/flag'; -import { Link } from '@app/ui/components/link/link'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; interface PsbtAddressTotalItemProps { hoverLabel?: string; diff --git a/src/app/features/psbt-signer/components/psbt-request-actions.tsx b/src/app/features/psbt-signer/components/psbt-request-actions.tsx index 56e6e3c2d97..fa6ce5cfd9d 100644 --- a/src/app/features/psbt-signer/components/psbt-request-actions.tsx +++ b/src/app/features/psbt-signer/components/psbt-request-actions.tsx @@ -1,4 +1,5 @@ -import { Button } from '@app/ui/components/button/button'; +import { Button } from '@leather-wallet/ui'; + import { Footer } from '@app/ui/components/containers/footers/footer'; interface PsbtRequestActionsProps { diff --git a/src/app/features/psbt-signer/components/psbt-request-details-header.tsx b/src/app/features/psbt-signer/components/psbt-request-details-header.tsx index bc4dfb2956c..9ecd5035e79 100644 --- a/src/app/features/psbt-signer/components/psbt-request-details-header.tsx +++ b/src/app/features/psbt-signer/components/psbt-request-details-header.tsx @@ -1,9 +1,9 @@ import { HStack, styled } from 'leather-styles/jsx'; +import { LockIcon, UnlockIcon } from '@leather-wallet/ui'; + import { usePsbtSignerContext } from '@app/features/psbt-signer/psbt-signer.context'; import { TagWithTooltip } from '@app/ui/components/tag/tag-with-tooltip'; -import { LockIcon } from '@app/ui/icons/lock-icon'; -import { UnlockIcon } from '@app/ui/icons/unlock-icon'; const immutableLabel = 'Any modification to the transaction, including the fee amount or other inputs/outputs, will invalidate the signature.'; diff --git a/src/app/features/psbt-signer/components/psbt-request-details-section-header.tsx b/src/app/features/psbt-signer/components/psbt-request-details-section-header.tsx index 1f69690ef64..c043e510adc 100644 --- a/src/app/features/psbt-signer/components/psbt-request-details-section-header.tsx +++ b/src/app/features/psbt-signer/components/psbt-request-details-section-header.tsx @@ -1,7 +1,6 @@ import { HStack, styled } from 'leather-styles/jsx'; -import { Link } from '@app/ui/components/link/link'; -import { ArrowUpIcon } from '@app/ui/icons/arrow-up-icon'; +import { ArrowUpIcon, Link } from '@leather-wallet/ui'; interface PsbtRequestDetailsSectionHeaderProps { hasDetails?: boolean; diff --git a/src/app/features/psbt-signer/components/psbt-request-header.tsx b/src/app/features/psbt-signer/components/psbt-request-header.tsx index 97dc691edae..173b1c495c2 100644 --- a/src/app/features/psbt-signer/components/psbt-request-header.tsx +++ b/src/app/features/psbt-signer/components/psbt-request-header.tsx @@ -1,7 +1,8 @@ import { Flex, styled } from 'leather-styles/jsx'; +import { Flag } from '@leather-wallet/ui'; + import { Favicon } from '@app/components/favicon'; -import { Flag } from '@app/ui/components/flag/flag'; interface PsbtRequestHeaderProps { name?: string; diff --git a/src/app/features/psbt-signer/components/psbt-request-sighash-warning-label.tsx b/src/app/features/psbt-signer/components/psbt-request-sighash-warning-label.tsx index 1ff560f6ed9..beed0a1d73e 100644 --- a/src/app/features/psbt-signer/components/psbt-request-sighash-warning-label.tsx +++ b/src/app/features/psbt-signer/components/psbt-request-sighash-warning-label.tsx @@ -1,4 +1,4 @@ -import { Callout } from '@app/ui/components/callout/callout'; +import { Callout } from '@leather-wallet/ui'; interface PsbtRequestSighashWarningLabelProps { origin: string; diff --git a/src/app/features/psbt-signer/psbt-signer.tsx b/src/app/features/psbt-signer/psbt-signer.tsx index 9e7a2dec906..83492639fa5 100644 --- a/src/app/features/psbt-signer/psbt-signer.tsx +++ b/src/app/features/psbt-signer/psbt-signer.tsx @@ -4,6 +4,7 @@ import { useNavigate } from 'react-router-dom'; import { PsbtSelectors } from '@tests/selectors/requests.selectors'; import { getPsbtTxInputs, getPsbtTxOutputs } from '@leather-wallet/bitcoin'; +import { Button } from '@leather-wallet/ui'; import { isError } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; @@ -14,7 +15,6 @@ import { useBreakOnNonCompliantEntity } from '@app/query/common/compliance-check import { useOnOriginTabClose } from '@app/routes/hooks/use-on-tab-closed'; import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { useCurrentAccountTaprootIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/taproot-account.hooks'; -import { Button } from '@app/ui/components/button/button'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx b/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx index 2cac7098fda..e59409a342e 100644 --- a/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx +++ b/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx @@ -1,8 +1,8 @@ import { Flex, styled } from 'leather-styles/jsx'; +import { Button, Callout } from '@leather-wallet/ui'; + import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon'; -import { Button } from '@app/ui/components/button/button'; -import { Callout } from '@app/ui/components/callout/callout'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; diff --git a/src/app/features/retrieve-taproot-to-native-segwit/retrieve-taproot-to-native-segwit.tsx b/src/app/features/retrieve-taproot-to-native-segwit/retrieve-taproot-to-native-segwit.tsx index f04e804a158..2390d238a89 100644 --- a/src/app/features/retrieve-taproot-to-native-segwit/retrieve-taproot-to-native-segwit.tsx +++ b/src/app/features/retrieve-taproot-to-native-segwit/retrieve-taproot-to-native-segwit.tsx @@ -7,6 +7,7 @@ import { useCurrentTaprootAccountBalance, useCurrentTaprootAccountUninscribedUtxos, } from '@leather-wallet/query'; +import { Link } from '@leather-wallet/ui'; import { delay, formatMoneyPadded, truncateMiddle } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; @@ -21,7 +22,6 @@ import { useCurrentAccountNativeSegwitIndexZeroSigner, } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { useCurrentTaprootAccount } from '@app/store/accounts/blockchain/bitcoin/taproot-account.hooks'; -import { Link } from '@app/ui/components/link/link'; import { RetrieveTaprootToNativeSegwitLayout } from './components/retrieve-taproot-to-native-segwit.layout'; import { useGenerateRetrieveTaprootFundsTx } from './use-generate-retrieve-taproot-funds-tx'; diff --git a/src/app/features/settings/components/advanced-menu-items.tsx b/src/app/features/settings/components/advanced-menu-items.tsx index 69b1295c0c4..29f6f58d1a2 100644 --- a/src/app/features/settings/components/advanced-menu-items.tsx +++ b/src/app/features/settings/components/advanced-menu-items.tsx @@ -1,6 +1,7 @@ import { useMemo } from 'react'; import { useAsync } from 'react-async-hook'; +import { Caption, DropdownMenu } from '@leather-wallet/ui'; import { isNumber } from '@leather-wallet/utils'; import { @@ -11,8 +12,6 @@ import { import { Divider } from '@app/components/layout/divider'; import { useToast } from '@app/features/toasts/use-toast'; -import { DropdownMenu } from '@app/ui/components/dropdown-menu/dropdown-menu'; -import { Caption } from '@app/ui/components/typography/caption'; const isAnEmptyLogsArrayByteThreshold = 7; diff --git a/src/app/features/settings/components/ledger-item-row.tsx b/src/app/features/settings/components/ledger-item-row.tsx index 8340be0df51..df82918043c 100644 --- a/src/app/features/settings/components/ledger-item-row.tsx +++ b/src/app/features/settings/components/ledger-item-row.tsx @@ -1,7 +1,8 @@ import { Flex, styled } from 'leather-styles/jsx'; +import { LedgerIcon } from '@leather-wallet/ui'; + import { Divider } from '@app/components/layout/divider'; -import { LedgerIcon } from '@app/ui/icons/ledger-icon'; interface LedgerDeviceItemRowProps { deviceType?: string; diff --git a/src/app/features/settings/network/components/network-list-item.layout.tsx b/src/app/features/settings/network/components/network-list-item.layout.tsx index e353a3a87c7..05bfb4e0be6 100644 --- a/src/app/features/settings/network/components/network-list-item.layout.tsx +++ b/src/app/features/settings/network/components/network-list-item.layout.tsx @@ -3,10 +3,9 @@ import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { Flex, Stack, styled } from 'leather-styles/jsx'; import type { NetworkConfiguration } from '@leather-wallet/models'; +import { Button, CheckmarkIcon, CloudOffIcon, TrashIcon } from '@leather-wallet/ui'; import { getUrlHostname } from '@app/common/utils'; -import { Button } from '@app/ui/components/button/button'; -import { CheckmarkIcon, CloudOffIcon, TrashIcon } from '@app/ui/icons'; interface NetworkListItemLayoutProps { networkId: string; diff --git a/src/app/features/settings/network/network.tsx b/src/app/features/settings/network/network.tsx index 8250881fdf3..d13455a30ea 100644 --- a/src/app/features/settings/network/network.tsx +++ b/src/app/features/settings/network/network.tsx @@ -3,6 +3,7 @@ import { useNavigate } from 'react-router-dom'; import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { WalletDefaultNetworkConfigurationIds } from '@leather-wallet/models'; +import { Button } from '@leather-wallet/ui'; import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; @@ -10,7 +11,6 @@ import { analytics } from '@shared/utils/analytics'; import { NetworkListItem } from '@app/features/settings/network/network-list-item'; import { useCurrentNetworkState, useNetworksActions } from '@app/store/networks/networks.hooks'; import { useNetworks } from '@app/store/networks/networks.selectors'; -import { Button } from '@app/ui/components/button/button'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; diff --git a/src/app/features/settings/settings.tsx b/src/app/features/settings/settings.tsx index bab49dfb20e..55855a7ef1f 100644 --- a/src/app/features/settings/settings.tsx +++ b/src/app/features/settings/settings.tsx @@ -5,6 +5,22 @@ import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { css } from 'leather-styles/css'; import { Flex, Stack, styled } from 'leather-styles/jsx'; +import { + Caption, + DropdownMenu, + ExitIcon, + ExpandIcon, + ExternalLinkIcon, + Flag, + KeyIcon, + LockIcon, + MegaphoneIcon, + SunInCloudIcon, + SupportIcon, + SwapIcon, + WorldIcon, +} from '@leather-wallet/ui'; + import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; @@ -20,21 +36,6 @@ import { ThemeDialog } from '@app/features/settings/theme/theme-dialog'; import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; import { useHasLedgerKeys, useLedgerDeviceTargetId } from '@app/store/ledger/ledger.selectors'; import { useCurrentNetworkId } from '@app/store/networks/networks.selectors'; -import { DropdownMenu } from '@app/ui/components/dropdown-menu/dropdown-menu'; -import { Flag } from '@app/ui/components/flag/flag'; -import { Caption } from '@app/ui/components/typography/caption'; -import { - ExitIcon, - ExpandIcon, - ExternalLinkIcon, - KeyIcon, - LockIcon, - MegaphoneIcon, - SunInCloudIcon, - SupportIcon, - SwapIcon, - WorldIcon, -} from '@app/ui/icons/'; import { openFeedbackDialog } from '../feedback-button/feedback-button'; import { extractDeviceNameFromKnownTargetIds } from '../ledger/utils/generic-ledger-utils'; diff --git a/src/app/features/settings/sign-out/sign-out.tsx b/src/app/features/settings/sign-out/sign-out.tsx index 23f37de0924..eb09f3322a2 100644 --- a/src/app/features/settings/sign-out/sign-out.tsx +++ b/src/app/features/settings/sign-out/sign-out.tsx @@ -2,9 +2,9 @@ import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { useFormik } from 'formik'; import { Flex, HStack, styled } from 'leather-styles/jsx'; +import { Button, Callout } from '@leather-wallet/ui'; + import { useWalletType } from '@app/common/use-wallet-type'; -import { Button } from '@app/ui/components/button/button'; -import { Callout } from '@app/ui/components/callout/callout'; import { Dialog, DialogProps } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; diff --git a/src/app/features/settings/theme/theme-list-item.tsx b/src/app/features/settings/theme/theme-list-item.tsx index 33c72298fd9..a369e4d5f66 100644 --- a/src/app/features/settings/theme/theme-list-item.tsx +++ b/src/app/features/settings/theme/theme-list-item.tsx @@ -2,8 +2,9 @@ import { useCallback } from 'react'; import { Box, Flex, styled } from 'leather-styles/jsx'; +import { CheckmarkIcon } from '@leather-wallet/ui'; + import { UserSelectedTheme, getThemeLabel } from '@app/common/theme-provider'; -import { CheckmarkIcon } from '@app/ui/icons'; interface ThemeListItemProps { theme: UserSelectedTheme; diff --git a/src/app/features/stacks-transaction-request/contract-call-details/contract-call-details.tsx b/src/app/features/stacks-transaction-request/contract-call-details/contract-call-details.tsx index 445488090b8..827d70a5299 100644 --- a/src/app/features/stacks-transaction-request/contract-call-details/contract-call-details.tsx +++ b/src/app/features/stacks-transaction-request/contract-call-details/contract-call-details.tsx @@ -2,12 +2,13 @@ import { Suspense } from 'react'; import { Stack } from 'leather-styles/jsx'; +import { Title } from '@leather-wallet/ui'; + import { useStacksExplorerLink } from '@app/common/hooks/use-stacks-explorer-link'; import { formatContractId } from '@app/common/utils'; import { AttachmentRow } from '@app/features/stacks-transaction-request/attachment-row'; import { ContractPreviewLayout } from '@app/features/stacks-transaction-request/contract-preview'; import { useTransactionRequestState } from '@app/store/transactions/requests.hooks'; -import { Title } from '@app/ui/components/typography/title'; import { FunctionArgumentsList } from './function-arguments-list'; diff --git a/src/app/features/stacks-transaction-request/contract-call-details/function-arguments-list.tsx b/src/app/features/stacks-transaction-request/contract-call-details/function-arguments-list.tsx index 50953f2384e..983d9f0fb50 100644 --- a/src/app/features/stacks-transaction-request/contract-call-details/function-arguments-list.tsx +++ b/src/app/features/stacks-transaction-request/contract-call-details/function-arguments-list.tsx @@ -2,8 +2,9 @@ import { Suspense, memo } from 'react'; import { Stack, StackProps } from 'leather-styles/jsx'; +import { Caption } from '@leather-wallet/ui'; + import { useTransactionRequestState } from '@app/store/transactions/requests.hooks'; -import { Caption } from '@app/ui/components/typography/caption'; import { FunctionArgumentItem } from './function-argument-item'; diff --git a/src/app/features/stacks-transaction-request/contract-deploy-details/contract-deploy-details.tsx b/src/app/features/stacks-transaction-request/contract-deploy-details/contract-deploy-details.tsx index 0fe9245b596..63a69a858a5 100644 --- a/src/app/features/stacks-transaction-request/contract-deploy-details/contract-deploy-details.tsx +++ b/src/app/features/stacks-transaction-request/contract-deploy-details/contract-deploy-details.tsx @@ -2,6 +2,8 @@ import { useState } from 'react'; import { HStack, HTMLStyledProps, Stack, styled } from 'leather-styles/jsx'; +import { Title } from '@leather-wallet/ui'; + import { Prism } from '@app/common/clarity-prism'; import { AttachmentRow } from '@app/features/stacks-transaction-request/attachment-row'; import { ContractPreviewLayout } from '@app/features/stacks-transaction-request/contract-preview'; @@ -12,7 +14,6 @@ import { } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; import { useTransactionRequestState } from '@app/store/transactions/requests.hooks'; import { CodeBlock } from '@app/ui/components/codeblock'; -import { Title } from '@app/ui/components/typography/title'; function ContractCodeSection() { const transactionRequest = useTransactionRequestState(); diff --git a/src/app/features/stacks-transaction-request/contract-preview.tsx b/src/app/features/stacks-transaction-request/contract-preview.tsx index 67fb7dd4999..8bf141e1fbf 100644 --- a/src/app/features/stacks-transaction-request/contract-preview.tsx +++ b/src/app/features/stacks-transaction-request/contract-preview.tsx @@ -1,11 +1,9 @@ import { HStack, Stack } from 'leather-styles/jsx'; +import { Caption, DynamicColorCircle, Title } from '@leather-wallet/ui'; import { truncateMiddle } from '@leather-wallet/utils'; import { formatContractId } from '@app/common/utils'; -import { DynamicColorCircle } from '@app/ui/components/dynamic-color-circle'; -import { Caption } from '@app/ui/components/typography/caption'; -import { Title } from '@app/ui/components/typography/title'; interface ContractPreviewLayoutProps { contractAddress: string; diff --git a/src/app/features/stacks-transaction-request/minimal-error-message.tsx b/src/app/features/stacks-transaction-request/minimal-error-message.tsx index d433825fca6..20758551ced 100644 --- a/src/app/features/stacks-transaction-request/minimal-error-message.tsx +++ b/src/app/features/stacks-transaction-request/minimal-error-message.tsx @@ -3,9 +3,10 @@ import { Suspense, memo } from 'react'; import { TransactionRequestSelectors } from '@tests/selectors/requests.selectors'; import { HStack, HstackProps, styled } from 'leather-styles/jsx'; +import { ErrorIcon } from '@leather-wallet/ui'; + import { useTransactionError } from '@app/features/stacks-transaction-request/hooks/use-transaction-error'; import { TransactionErrorReason } from '@app/features/stacks-transaction-request/transaction-error/transaction-error'; -import { ErrorIcon } from '@app/ui/icons/error-icon'; function MinimalErrorMessageSuspense(props: HstackProps) { const error = useTransactionError(); diff --git a/src/app/features/stacks-transaction-request/page-top.tsx b/src/app/features/stacks-transaction-request/page-top.tsx index 8b3a8d5fb63..408b9e8fe4d 100644 --- a/src/app/features/stacks-transaction-request/page-top.tsx +++ b/src/app/features/stacks-transaction-request/page-top.tsx @@ -3,13 +3,14 @@ import { memo } from 'react'; import { TransactionRequestSelectors } from '@tests/selectors/requests.selectors'; import { Stack, styled } from 'leather-styles/jsx'; +import { Flag } from '@leather-wallet/ui'; + import { useDefaultRequestParams } from '@app/common/hooks/use-default-request-search-params'; import { addPortSuffix, getUrlHostname } from '@app/common/utils'; import { Favicon } from '@app/components/favicon'; import { useStacksTxPageTitle } from '@app/features/stacks-transaction-request/hooks/use-stacks-tx-page-title'; import { useCurrentNetworkState } from '@app/store/networks/networks.hooks'; import { useTransactionRequestState } from '@app/store/transactions/requests.hooks'; -import { Flag } from '@app/ui/components/flag/flag'; function PageTopBase() { const transactionRequest = useTransactionRequestState(); diff --git a/src/app/features/stacks-transaction-request/post-condition-mode-warning.tsx b/src/app/features/stacks-transaction-request/post-condition-mode-warning.tsx index 93252b34016..838d3e3ccfa 100644 --- a/src/app/features/stacks-transaction-request/post-condition-mode-warning.tsx +++ b/src/app/features/stacks-transaction-request/post-condition-mode-warning.tsx @@ -1,7 +1,8 @@ import { PostConditionMode } from '@stacks/transactions'; +import { Callout } from '@leather-wallet/ui'; + import { usePostConditionModeState } from '@app/store/transactions/post-conditions.hooks'; -import { Callout } from '@app/ui/components/callout/callout'; export function PostConditionModeWarning(): React.JSX.Element | null { const mode = usePostConditionModeState(); diff --git a/src/app/features/stacks-transaction-request/post-conditions/no-post-conditions.tsx b/src/app/features/stacks-transaction-request/post-conditions/no-post-conditions.tsx index 5ffed6feb56..6740cfc6f7e 100644 --- a/src/app/features/stacks-transaction-request/post-conditions/no-post-conditions.tsx +++ b/src/app/features/stacks-transaction-request/post-conditions/no-post-conditions.tsx @@ -1,6 +1,6 @@ import { Box, Circle, HStack, styled } from 'leather-styles/jsx'; -import { LockIcon } from '@app/ui/icons/lock-icon'; +import { LockIcon } from '@leather-wallet/ui'; export function NoPostConditions(): React.JSX.Element { return ( diff --git a/src/app/features/stacks-transaction-request/principal-value.tsx b/src/app/features/stacks-transaction-request/principal-value.tsx index 41eadb11987..c2eb0e5dffc 100644 --- a/src/app/features/stacks-transaction-request/principal-value.tsx +++ b/src/app/features/stacks-transaction-request/principal-value.tsx @@ -1,7 +1,8 @@ +import { Link } from '@leather-wallet/ui'; + import { makeStacksAddressExplorerLink } from '@app/common/utils'; import { openInNewTab } from '@app/common/utils/open-in-new-tab'; import { useCurrentNetworkState } from '@app/store/networks/networks.hooks'; -import { Link } from '@app/ui/components/link/link'; interface PrincipalValueProps { address: string; diff --git a/src/app/features/stacks-transaction-request/row.tsx b/src/app/features/stacks-transaction-request/row.tsx index 5f8134de0b2..03e7aef3988 100644 --- a/src/app/features/stacks-transaction-request/row.tsx +++ b/src/app/features/stacks-transaction-request/row.tsx @@ -1,6 +1,6 @@ import { HStack, Stack, styled } from 'leather-styles/jsx'; -import { Caption } from '@app/ui/components/typography/caption'; +import { Caption } from '@leather-wallet/ui'; import { PrincipalValue } from './principal-value'; diff --git a/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx b/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx index e327dc921bf..c0b02fe9740 100644 --- a/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx +++ b/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx @@ -13,6 +13,7 @@ import { useNextNonce, useStxAvailableUnlockedBalance, } from '@leather-wallet/query'; +import { Link } from '@leather-wallet/ui'; import { stxToMicroStx } from '@leather-wallet/utils'; import { StacksTransactionFormValues } from '@shared/models/form.model'; @@ -34,7 +35,6 @@ import { StxTransferDetails } from '@app/features/stacks-transaction-request/stx import { TransactionError } from '@app/features/stacks-transaction-request/transaction-error/transaction-error'; import { useCurrentStacksAccountAddress } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; import { useTransactionRequestState } from '@app/store/transactions/requests.hooks'; -import { Link } from '@app/ui/components/link/link'; import { FeeForm } from './fee-form'; import { MinimalErrorMessage } from './minimal-error-message'; diff --git a/src/app/features/stacks-transaction-request/stx-transfer-details/stx-transfer-details.tsx b/src/app/features/stacks-transaction-request/stx-transfer-details/stx-transfer-details.tsx index de5bd459b24..b07a7e6d2b7 100644 --- a/src/app/features/stacks-transaction-request/stx-transfer-details/stx-transfer-details.tsx +++ b/src/app/features/stacks-transaction-request/stx-transfer-details/stx-transfer-details.tsx @@ -1,9 +1,10 @@ import { Stack } from 'leather-styles/jsx'; +import { Title } from '@leather-wallet/ui'; + import { AttachmentRow } from '@app/features/stacks-transaction-request/attachment-row'; import { Row } from '@app/features/stacks-transaction-request/row'; import { useTransactionRequestState } from '@app/store/transactions/requests.hooks'; -import { Title } from '@app/ui/components/typography/title'; export function StxTransferDetails(): React.JSX.Element | null { const pendingTransaction = useTransactionRequestState(); diff --git a/src/app/features/stacks-transaction-request/submit-action.tsx b/src/app/features/stacks-transaction-request/submit-action.tsx index 9b661460e79..aa560f1edf6 100644 --- a/src/app/features/stacks-transaction-request/submit-action.tsx +++ b/src/app/features/stacks-transaction-request/submit-action.tsx @@ -2,12 +2,12 @@ import { TransactionRequestSelectors } from '@tests/selectors/requests.selectors import { useFormikContext } from 'formik'; import { HIGH_FEE_AMOUNT_STX } from '@leather-wallet/constants'; +import { Button } from '@leather-wallet/ui'; import { isEmpty } from '@leather-wallet/utils'; import { StacksTransactionFormValues } from '@shared/models/form.model'; import { useTransactionError } from '@app/features/stacks-transaction-request/hooks/use-transaction-error'; -import { Button } from '@app/ui/components/button/button'; interface SubmitActionProps { setIsShowingHighFeeConfirmation(): void; diff --git a/src/app/features/stacks-transaction-request/transaction-error/error-message.tsx b/src/app/features/stacks-transaction-request/transaction-error/error-message.tsx index c38e8545c90..c1a4c5faa76 100644 --- a/src/app/features/stacks-transaction-request/transaction-error/error-message.tsx +++ b/src/app/features/stacks-transaction-request/transaction-error/error-message.tsx @@ -2,7 +2,7 @@ import { memo } from 'react'; import { HStack, Stack, styled } from 'leather-styles/jsx'; -import { ErrorIcon } from '@app/ui/icons/error-icon'; +import { ErrorIcon } from '@leather-wallet/ui'; interface ErrorMessageProps { title: string; diff --git a/src/app/features/stacks-transaction-request/transaction-error/error-messages.tsx b/src/app/features/stacks-transaction-request/transaction-error/error-messages.tsx index 4e170fd8675..26896d53019 100644 --- a/src/app/features/stacks-transaction-request/transaction-error/error-messages.tsx +++ b/src/app/features/stacks-transaction-request/transaction-error/error-messages.tsx @@ -5,6 +5,7 @@ import { STXTransferPayload, TransactionTypes } from '@stacks/connect'; import { Flex, HStack, Stack } from 'leather-styles/jsx'; import { useStxAvailableUnlockedBalance } from '@leather-wallet/query'; +import { Button, Caption } from '@leather-wallet/ui'; import { truncateMiddle } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; @@ -18,8 +19,6 @@ import { ErrorMessage } from '@app/features/stacks-transaction-request/transacti import { useCurrentStacksAccountAddress } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; import { useCurrentNetworkState } from '@app/store/networks/networks.hooks'; import { useTransactionRequestState } from '@app/store/transactions/requests.hooks'; -import { Button } from '@app/ui/components/button/button'; -import { Caption } from '@app/ui/components/typography/caption'; interface InsufficientFundsActionButtonsProps { eventName: string; diff --git a/src/app/pages/bitcoin-contract-list/components/bitcoin-contract-list-item-layout.tsx b/src/app/pages/bitcoin-contract-list/components/bitcoin-contract-list-item-layout.tsx index ab293a974f4..c5702c305db 100644 --- a/src/app/pages/bitcoin-contract-list/components/bitcoin-contract-list-item-layout.tsx +++ b/src/app/pages/bitcoin-contract-list/components/bitcoin-contract-list-item-layout.tsx @@ -3,6 +3,7 @@ import { useCallback } from 'react'; import { Flex, HStack, styled } from 'leather-styles/jsx'; import { useCryptoCurrencyMarketDataMeanAverage } from '@leather-wallet/query'; +import { BitcoinContractIcon, Caption, Flag } from '@leather-wallet/ui'; import { baseCurrencyAmountInQuote, createMoneyFromDecimal, @@ -11,9 +12,6 @@ import { } from '@leather-wallet/utils'; import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; -import { Flag } from '@app/ui/components/flag/flag'; -import { Caption } from '@app/ui/components/typography/caption'; -import { BitcoinContractIcon } from '@app/ui/icons/bitcoin-contract-icon'; interface BitcoinContractListItemLayoutProps { id: string; diff --git a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-offer/bitcoin-contract-lock-amount.tsx b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-offer/bitcoin-contract-lock-amount.tsx index 427fdd871fe..2d67e1e612c 100644 --- a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-offer/bitcoin-contract-lock-amount.tsx +++ b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-offer/bitcoin-contract-lock-amount.tsx @@ -4,13 +4,11 @@ import { BitcoinContractRequestSelectors } from '@tests/selectors/bitcoin-contra import { HStack, styled } from 'leather-styles/jsx'; import { token } from 'leather-styles/tokens'; +import { ArrowUpIcon, CopyIcon, Flag, Link } from '@leather-wallet/ui'; + import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon'; -import { Flag } from '@app/ui/components/flag/flag'; -import { Link } from '@app/ui/components/link/link'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { ArrowUpIcon } from '@app/ui/icons/arrow-up-icon'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; interface BitcoinContractLockAmountProps { hoverLabel?: string; diff --git a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-actions.tsx b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-actions.tsx index 99fd5b8de0a..8da68d0d8be 100644 --- a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-actions.tsx +++ b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-actions.tsx @@ -1,7 +1,8 @@ import { BitcoinContractRequestSelectors } from '@tests/selectors/bitcoin-contract-request.selectors'; +import { Button } from '@leather-wallet/ui'; + import { useBtcCryptoAssetBalanceNativeSegwit } from '@app/query/bitcoin/balance/btc-balance-native-segwit.hooks'; -import { Button } from '@app/ui/components/button/button'; interface BitcoinContractRequestActionsProps { isLoading: boolean; diff --git a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-header.tsx b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-header.tsx index cf32f67a147..db37770fa71 100644 --- a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-header.tsx +++ b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-header.tsx @@ -3,9 +3,7 @@ import { memo } from 'react'; import { BitcoinContractRequestSelectors } from '@tests/selectors/bitcoin-contract-request.selectors'; import { Flex } from 'leather-styles/jsx'; -import { Flag } from '@app/ui/components/flag/flag'; -import { Caption } from '@app/ui/components/typography/caption'; -import { Title } from '@app/ui/components/typography/title'; +import { Caption, Flag, Title } from '@leather-wallet/ui'; interface BitcoinContractRequestHeaderBaseProps { counterpartyWalletIcon: string; diff --git a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-warning-label.tsx b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-warning-label.tsx index a81de6200c7..922840e8ee6 100644 --- a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-warning-label.tsx +++ b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-request-warning-label.tsx @@ -1,6 +1,6 @@ import { BitcoinContractRequestSelectors } from '@tests/selectors/bitcoin-contract-request.selectors'; -import { Callout } from '@app/ui/components/callout/callout'; +import { Callout } from '@leather-wallet/ui'; export function BitcoinContractRequestWarningLabel(props: { appName?: string }) { const { appName } = props; diff --git a/src/app/pages/choose-account/choose-account.tsx b/src/app/pages/choose-account/choose-account.tsx index 8552da7767c..eb619b47a90 100644 --- a/src/app/pages/choose-account/choose-account.tsx +++ b/src/app/pages/choose-account/choose-account.tsx @@ -3,6 +3,8 @@ import { Outlet } from 'react-router-dom'; import { Flex, Stack, styled } from 'leather-styles/jsx'; +import { LogomarkIcon } from '@leather-wallet/ui'; + import { closeWindow } from '@shared/utils'; import { useCancelAuthRequest } from '@app/common/authentication/use-cancel-auth-request'; @@ -11,7 +13,6 @@ import { RequesterFlag } from '@app/components/requester-flag'; import { ChooseAccountsList } from '@app/pages/choose-account/components/accounts'; import { useOnOriginTabClose } from '@app/routes/hooks/use-on-tab-closed'; import { useStacksAccounts } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; -import { LogomarkIcon } from '@app/ui/icons/logomark-icon'; export function ChooseAccount() { const { url } = useAppDetails(); diff --git a/src/app/pages/choose-account/components/accounts.tsx b/src/app/pages/choose-account/components/accounts.tsx index a1cd728a1c8..90906fd6c91 100644 --- a/src/app/pages/choose-account/components/accounts.tsx +++ b/src/app/pages/choose-account/components/accounts.tsx @@ -5,6 +5,8 @@ import { Virtuoso } from 'react-virtuoso'; import { Box, FlexProps, HStack, styled } from 'leather-styles/jsx'; import { token } from 'leather-styles/tokens'; +import { PlusIcon } from '@leather-wallet/ui'; + import { RouteUrls } from '@shared/route-urls'; import { useFinishAuthRequest } from '@app/common/authentication/use-finish-auth-request'; @@ -21,7 +23,6 @@ import { useStacksAccounts } from '@app/store/accounts/blockchain/stacks/stacks- import { StacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.models'; import { AccountAvatar } from '@app/ui/components/account/account-avatar/account-avatar'; import { VirtuosoWrapper } from '@app/ui/components/virtuoso'; -import { PlusIcon } from '@app/ui/icons/plus-icon'; interface AccountTitlePlaceholderProps { account: StacksAccount; diff --git a/src/app/pages/fund/components/fiat-provider-item.tsx b/src/app/pages/fund/components/fiat-provider-item.tsx index 31f11affb2d..d123449b0e5 100644 --- a/src/app/pages/fund/components/fiat-provider-item.tsx +++ b/src/app/pages/fund/components/fiat-provider-item.tsx @@ -1,8 +1,8 @@ import { FundPageSelectors } from '@tests/selectors/fund.selectors'; +import { StarIcon, Tag, ZapIcon } from '@leather-wallet/ui'; + import { AvailableRegions } from '@app/query/common/remote-config/remote-config.query'; -import { Tag } from '@app/ui/components/tag/tag'; -import { StarIcon, ZapIcon } from '@app/ui/icons'; import { FundAccountTile } from './fund-account-tile'; diff --git a/src/app/pages/home/components/account-actions.tsx b/src/app/pages/home/components/account-actions.tsx index b994bb4b87d..3be4dfd8c77 100644 --- a/src/app/pages/home/components/account-actions.tsx +++ b/src/app/pages/home/components/account-actions.tsx @@ -4,6 +4,8 @@ import { ChainID } from '@stacks/transactions'; import { HomePageSelectors } from '@tests/selectors/home.selectors'; import { Flex } from 'leather-styles/jsx'; +import { CreditCardIcon, IconButton, InboxIcon, SwapIcon } from '@leather-wallet/ui'; + import { whenStacksChainId } from '@shared/crypto/stacks/stacks.utils'; import { RouteUrls } from '@shared/route-urls'; @@ -14,9 +16,7 @@ import { import { useCurrentAccountNativeSegwitIndexZeroSignerNullable } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; import { useCurrentNetwork } from '@app/store/networks/networks.selectors'; -import { IconButton } from '@app/ui/components/icon-button/icon-button'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { CreditCardIcon, InboxIcon, SwapIcon } from '@app/ui/icons'; import { SendButton } from './send-button'; import { SwapsDisabledTooltipLabel } from './swaps-disabled-tooltip-label'; diff --git a/src/app/pages/home/components/send-button.tsx b/src/app/pages/home/components/send-button.tsx index aa278d56aa9..67dbb090167 100644 --- a/src/app/pages/home/components/send-button.tsx +++ b/src/app/pages/home/components/send-button.tsx @@ -4,6 +4,7 @@ import { useNavigate } from 'react-router-dom'; import { HomePageSelectors } from '@tests/selectors/home.selectors'; import { useStxCryptoAssetBalance, useTransferableSip10Tokens } from '@leather-wallet/query'; +import { IconButton, SendIcon } from '@leather-wallet/ui'; import { RouteUrls } from '@shared/route-urls'; @@ -13,8 +14,6 @@ import { openIndexPageInNewTab } from '@app/common/utils/open-in-new-tab'; import { useBtcCryptoAssetBalanceNativeSegwit } from '@app/query/bitcoin/balance/btc-balance-native-segwit.hooks'; import { useCurrentAccountNativeSegwitIndexZeroSignerNullable } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; import { useCurrentStacksAccountAddress } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; -import { IconButton } from '@app/ui/components/icon-button/icon-button'; -import { SendIcon } from '@app/ui/icons'; function SendButtonSuspense() { const navigate = useNavigate(); diff --git a/src/app/pages/home/components/swaps-disabled-tooltip-label.tsx b/src/app/pages/home/components/swaps-disabled-tooltip-label.tsx index 7aa5858ab47..14bd62cea3c 100644 --- a/src/app/pages/home/components/swaps-disabled-tooltip-label.tsx +++ b/src/app/pages/home/components/swaps-disabled-tooltip-label.tsx @@ -1,6 +1,6 @@ import { Stack, styled } from 'leather-styles/jsx'; -import { Link } from '@app/ui/components/link/link'; +import { Link } from '@leather-wallet/ui'; export function SwapsDisabledTooltipLabel() { return ( diff --git a/src/app/pages/onboarding/back-up-secret-key/back-up-secret-key.tsx b/src/app/pages/onboarding/back-up-secret-key/back-up-secret-key.tsx index 8721ef746e3..a5d1276ac47 100644 --- a/src/app/pages/onboarding/back-up-secret-key/back-up-secret-key.tsx +++ b/src/app/pages/onboarding/back-up-secret-key/back-up-secret-key.tsx @@ -3,11 +3,12 @@ import { useNavigate } from 'react-router-dom'; import { HStack, Stack, styled } from 'leather-styles/jsx'; +import { EyeSlashIcon, KeyIcon, LockIcon } from '@leather-wallet/ui'; + import { RouteUrls } from '@shared/route-urls'; import { SecretKey } from '@app/features/secret-key-displayer/secret-key-displayer'; import { useDefaultWalletSecretKey } from '@app/store/in-memory-key/in-memory-key.selectors'; -import { EyeSlashIcon, KeyIcon, LockIcon } from '@app/ui/icons/'; import { TwoColumnLayout } from '@app/ui/pages/two-column.layout'; export const BackUpSecretKeyPage = memo(() => { diff --git a/src/app/pages/onboarding/set-password/components/password-field.tsx b/src/app/pages/onboarding/set-password/components/password-field.tsx index 50f0dedb2db..25eb7ce23c6 100644 --- a/src/app/pages/onboarding/set-password/components/password-field.tsx +++ b/src/app/pages/onboarding/set-password/components/password-field.tsx @@ -4,12 +4,10 @@ import { OnboardingSelectors } from '@tests/selectors/onboarding.selectors'; import { useField } from 'formik'; import { Box, Flex, styled } from 'leather-styles/jsx'; +import { Caption, EyeIcon, EyeSlashIcon, Input } from '@leather-wallet/ui'; + import { useThemeSwitcher } from '@app/common/theme-provider'; import { ValidatedPassword } from '@app/common/validation/validate-password'; -import { Input } from '@app/ui/components/input/input'; -import { Caption } from '@app/ui/components/typography/caption'; -import { EyeIcon } from '@app/ui/icons/eye-icon'; -import { EyeSlashIcon } from '@app/ui/icons/eye-slash-icon'; import { getIndicatorsOfPasswordStrength } from './password-field.utils'; import { PasswordStrengthIndicator } from './password-strength-indicator'; diff --git a/src/app/pages/onboarding/set-password/set-password.tsx b/src/app/pages/onboarding/set-password/set-password.tsx index e6eca84e1b2..d734ae0dc1f 100644 --- a/src/app/pages/onboarding/set-password/set-password.tsx +++ b/src/app/pages/onboarding/set-password/set-password.tsx @@ -6,6 +6,7 @@ import { Form, Formik } from 'formik'; import { debounce } from 'ts-debounce'; import * as yup from 'yup'; +import { Button } from '@leather-wallet/ui'; import { isUndefined } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; @@ -20,7 +21,6 @@ import { } from '@app/common/validation/validate-password'; import { OnboardingGate } from '@app/routes/onboarding-gate'; import { useStacksAccounts } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; -import { Button } from '@app/ui/components/button/button'; import { TwoColumnLayout } from '@app/ui/pages/two-column.layout'; import { PasswordField } from './components/password-field'; diff --git a/src/app/pages/onboarding/sign-in/mnemonic-form.tsx b/src/app/pages/onboarding/sign-in/mnemonic-form.tsx index 2df1022ce67..5931c99735e 100644 --- a/src/app/pages/onboarding/sign-in/mnemonic-form.tsx +++ b/src/app/pages/onboarding/sign-in/mnemonic-form.tsx @@ -2,11 +2,11 @@ import { OnboardingSelectors } from '@tests/selectors/onboarding.selectors'; import { Form, Formik } from 'formik'; import { Stack } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; import { createNullArrayOfLength, isEmpty } from '@leather-wallet/utils'; import { ErrorLabel } from '@app/components/error-label'; import { useSignIn } from '@app/pages/onboarding/sign-in/hooks/use-sign-in'; -import { Button } from '@app/ui/components/button/button'; import { MnemonicWordInput } from '@app/ui/components/secret-key/mnemonic-key/mnemonic-word-input'; import { getMnemonicErrorFields, diff --git a/src/app/pages/onboarding/sign-in/sign-in.tsx b/src/app/pages/onboarding/sign-in/sign-in.tsx index 0930504dece..6ae18855b8e 100644 --- a/src/app/pages/onboarding/sign-in/sign-in.tsx +++ b/src/app/pages/onboarding/sign-in/sign-in.tsx @@ -1,9 +1,9 @@ import { useEffect, useState } from 'react'; +import { Link } from '@leather-wallet/ui'; import { createNullArrayOfLength } from '@leather-wallet/utils'; import { MnemonicForm } from '@app/pages/onboarding/sign-in/mnemonic-form'; -import { Link } from '@app/ui/components/link/link'; import { TwoColumnLayout } from '@app/ui/pages/two-column.layout'; export function SignIn() { diff --git a/src/app/pages/receive/components/receive-item.tsx b/src/app/pages/receive/components/receive-item.tsx index 99b2860f4bc..083851e0fc1 100644 --- a/src/app/pages/receive/components/receive-item.tsx +++ b/src/app/pages/receive/components/receive-item.tsx @@ -1,11 +1,12 @@ +import { + CopyIcon, + IconButton, + ItemLayoutWithButtons, + Pressable, + QrCodeIcon, +} from '@leather-wallet/ui'; import { truncateMiddle } from '@leather-wallet/utils'; -import { IconButton } from '@app/ui/components/icon-button/icon-button'; -import { ItemLayoutWithButtons } from '@app/ui/components/item-layout/item-layout-with-buttons'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; -import { QrCodeIcon } from '@app/ui/icons/qr-code-icon'; -import { Pressable } from '@app/ui/pressable/pressable'; - interface ReceiveItemProps { address?: string; dataTestId?: string; diff --git a/src/app/pages/receive/components/receive-tokens.layout.tsx b/src/app/pages/receive/components/receive-tokens.layout.tsx index 8e01e7a8b63..ba3a5449da6 100644 --- a/src/app/pages/receive/components/receive-tokens.layout.tsx +++ b/src/app/pages/receive/components/receive-tokens.layout.tsx @@ -5,10 +5,11 @@ import { SharedComponentsSelectors } from '@tests/selectors/shared-component.sel import { Box, Flex, styled } from 'leather-styles/jsx'; import { token } from 'leather-styles/tokens'; +import { Button } from '@leather-wallet/ui'; + import { useLocationState } from '@app/common/hooks/use-location-state'; import { useBackgroundLocationRedirect } from '@app/routes/hooks/use-background-location-redirect'; import { AddressDisplayer } from '@app/ui/components/address-displayer/address-displayer'; -import { Button } from '@app/ui/components/button/button'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { Header } from '@app/ui/components/containers/headers/header'; diff --git a/src/app/pages/rpc-get-addresses/components/get-addresses.layout.tsx b/src/app/pages/rpc-get-addresses/components/get-addresses.layout.tsx index a8669b172d1..035fc3ef316 100644 --- a/src/app/pages/rpc-get-addresses/components/get-addresses.layout.tsx +++ b/src/app/pages/rpc-get-addresses/components/get-addresses.layout.tsx @@ -1,9 +1,8 @@ import { Box, Flex, styled } from 'leather-styles/jsx'; +import { Button, LettermarkIcon, LogomarkIcon } from '@leather-wallet/ui'; + import { RequesterFlag } from '@app/components/requester-flag'; -import { Button } from '@app/ui/components/button/button'; -import { LettermarkIcon } from '@app/ui/icons'; -import { LogomarkIcon } from '@app/ui/icons/logomark-icon'; interface GetAddressesLayoutProps { requester: string; diff --git a/src/app/pages/rpc-send-transfer/components/send-transfer-header.tsx b/src/app/pages/rpc-send-transfer/components/send-transfer-header.tsx index 8aedf76c30e..f3610b38bcf 100644 --- a/src/app/pages/rpc-send-transfer/components/send-transfer-header.tsx +++ b/src/app/pages/rpc-send-transfer/components/send-transfer-header.tsx @@ -1,7 +1,8 @@ import { Flex, styled } from 'leather-styles/jsx'; +import { Flag } from '@leather-wallet/ui'; + import { Favicon } from '@app/components/favicon'; -import { Flag } from '@app/ui/components/flag/flag'; interface SendTransferHeaderProps { amount: string; diff --git a/src/app/pages/rpc-send-transfer/rpc-send-transfer-confirmation.tsx b/src/app/pages/rpc-send-transfer/rpc-send-transfer-confirmation.tsx index 1e204bbda81..85842b58f95 100644 --- a/src/app/pages/rpc-send-transfer/rpc-send-transfer-confirmation.tsx +++ b/src/app/pages/rpc-send-transfer/rpc-send-transfer-confirmation.tsx @@ -9,6 +9,7 @@ import { useBitcoinBroadcastTransaction, useCryptoCurrencyMarketDataMeanAverage, } from '@leather-wallet/query'; +import { Button } from '@leather-wallet/ui'; import { baseCurrencyAmountInQuote, createMoney, @@ -29,7 +30,6 @@ import { analytics } from '@shared/utils/analytics'; import { InfoCardFooter } from '@app/components/info-card/info-card'; import { useCurrentNativeSegwitUtxos } from '@app/query/bitcoin/address/utxos-by-address.hooks'; import { useCurrentAccountNativeSegwitAddressIndexZero } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; -import { Button } from '@app/ui/components/button/button'; import { SendTransferConfirmationDetails } from './components/send-transfer-confirmation-details'; import { useRpcSendTransferRequestParams } from './use-rpc-send-transfer'; diff --git a/src/app/pages/rpc-send-transfer/rpc-send-transfer-summary.tsx b/src/app/pages/rpc-send-transfer/rpc-send-transfer-summary.tsx index 5ce3f9044fd..2d868202776 100644 --- a/src/app/pages/rpc-send-transfer/rpc-send-transfer-summary.tsx +++ b/src/app/pages/rpc-send-transfer/rpc-send-transfer-summary.tsx @@ -2,6 +2,8 @@ import { useLocation } from 'react-router-dom'; import { HStack, Stack } from 'leather-styles/jsx'; +import { CheckmarkIcon, CopyIcon, ExternalLinkIcon } from '@leather-wallet/ui'; + import type { TransferRecipient } from '@shared/models/form.model'; import { analytics } from '@shared/utils/analytics'; @@ -16,9 +18,6 @@ import { InfoCardSeparator, } from '@app/components/info-card/info-card'; import { useToast } from '@app/features/toasts/use-toast'; -import { CheckmarkIcon } from '@app/ui/icons/checkmark-icon'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; -import { ExternalLinkIcon } from '@app/ui/icons/external-link-icon'; import { Card } from '@app/ui/layout/card/card'; export function RpcSendTransferSummary() { diff --git a/src/app/pages/rpc-send-transfer/rpc-send-transfer.tsx b/src/app/pages/rpc-send-transfer/rpc-send-transfer.tsx index e4716a9fb9b..66afe00ac6c 100644 --- a/src/app/pages/rpc-send-transfer/rpc-send-transfer.tsx +++ b/src/app/pages/rpc-send-transfer/rpc-send-transfer.tsx @@ -1,11 +1,11 @@ import BigNumber from 'bignumber.js'; +import { Button } from '@leather-wallet/ui'; import { createMoney, formatMoneyPadded } from '@leather-wallet/utils'; import { InfoCardFooter } from '@app/components/info-card/info-card'; import { useBreakOnNonCompliantEntity } from '@app/query/common/compliance-checker/compliance-checker.query'; import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks'; -import { Button } from '@app/ui/components/button/button'; import { SendTransferDetails } from './components/send-transfer-details'; import { SendTransferHeader } from './components/send-transfer-header'; diff --git a/src/app/pages/rpc-sign-psbt/rpc-sign-psbt-summary.tsx b/src/app/pages/rpc-sign-psbt/rpc-sign-psbt-summary.tsx index e988fb141ea..466453383d8 100644 --- a/src/app/pages/rpc-sign-psbt/rpc-sign-psbt-summary.tsx +++ b/src/app/pages/rpc-sign-psbt/rpc-sign-psbt-summary.tsx @@ -2,6 +2,8 @@ import { useLocation } from 'react-router-dom'; import { Flex, HStack, Stack } from 'leather-styles/jsx'; +import { CheckmarkIcon, CopyIcon, ExternalLinkIcon } from '@leather-wallet/ui'; + import { analytics } from '@shared/utils/analytics'; import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; @@ -13,9 +15,6 @@ import { InfoCardRow, } from '@app/components/info-card/info-card'; import { useToast } from '@app/features/toasts/use-toast'; -import { CheckmarkIcon } from '@app/ui/icons/checkmark-icon'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; -import { ExternalLinkIcon } from '@app/ui/icons/external-link-icon'; import { Card } from '@app/ui/layout/card/card'; export function RpcSignPsbtSummary() { diff --git a/src/app/pages/send/choose-crypto-asset/send-btc-disabled.tsx b/src/app/pages/send/choose-crypto-asset/send-btc-disabled.tsx index 93116388be9..24ea82354bd 100644 --- a/src/app/pages/send/choose-crypto-asset/send-btc-disabled.tsx +++ b/src/app/pages/send/choose-crypto-asset/send-btc-disabled.tsx @@ -2,11 +2,12 @@ import { useNavigate } from 'react-router-dom'; import { Box, HStack, styled } from 'leather-styles/jsx'; +import { ExternalLinkIcon } from '@leather-wallet/ui'; + import { RouteUrls } from '@shared/route-urls'; import { openInNewTab } from '@app/common/utils/open-in-new-tab'; import { GenericError } from '@app/components/generic-error/generic-error'; -import { ExternalLinkIcon } from '@app/ui/icons/external-link-icon'; const body = 'Sending bitcoin is temporarily disabled'; const helpTextList = [ diff --git a/src/app/pages/send/locked-bitcoin-summary/locked-bitcoin-summary.tsx b/src/app/pages/send/locked-bitcoin-summary/locked-bitcoin-summary.tsx index a21c4c5ad73..cd18f2a9fe6 100644 --- a/src/app/pages/send/locked-bitcoin-summary/locked-bitcoin-summary.tsx +++ b/src/app/pages/send/locked-bitcoin-summary/locked-bitcoin-summary.tsx @@ -2,6 +2,7 @@ import { useLocation } from 'react-router-dom'; import { HStack, styled } from 'leather-styles/jsx'; +import { CheckmarkIcon, CopyIcon, ExternalLinkIcon } from '@leather-wallet/ui'; import { satToBtc } from '@leather-wallet/utils'; import { analytics } from '@shared/utils/analytics'; @@ -11,9 +12,6 @@ import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { InfoCardAssetValue, InfoCardBtn } from '@app/components/info-card/info-card'; import { useToast } from '@app/features/toasts/use-toast'; import { Footer } from '@app/ui/components/containers/footers/footer'; -import { CheckmarkIcon } from '@app/ui/icons/checkmark-icon'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; -import { ExternalLinkIcon } from '@app/ui/icons/external-link-icon'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx b/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx index f238991c984..baae40ce42c 100644 --- a/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx +++ b/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx @@ -3,13 +3,14 @@ import { useNavigate } from 'react-router-dom'; import { Form, Formik } from 'formik'; import { Box, Flex } from 'leather-styles/jsx'; +import { Button } from '@leather-wallet/ui'; + import { RouteUrls } from '@shared/route-urls'; import { ErrorLabel } from '@app/components/error-label'; import { InscriptionPreview } from '@app/components/inscription-preview-card/components/inscription-preview'; import { InscriptionPreviewCard } from '@app/components/inscription-preview-card/inscription-preview-card'; import { OrdinalAvatarIcon } from '@app/ui/components/avatar/ordinal-avatar-icon'; -import { Button } from '@app/ui/components/button/button'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; diff --git a/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx b/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx index 8e45474988a..90e031f2eda 100644 --- a/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx +++ b/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx @@ -5,6 +5,7 @@ import { Box, Flex, Stack } from 'leather-styles/jsx'; import get from 'lodash.get'; import { useBitcoinBroadcastTransaction } from '@leather-wallet/query'; +import { Button } from '@leather-wallet/ui'; import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; @@ -15,7 +16,6 @@ import { InscriptionPreview } from '@app/components/inscription-preview-card/com import { useCurrentNativeSegwitUtxos } from '@app/query/bitcoin/address/utxos-by-address.hooks'; import { useAppDispatch } from '@app/store'; import { inscriptionSent } from '@app/store/ordinals/ordinals.slice'; -import { Button } from '@app/ui/components/button/button'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; diff --git a/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx b/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx index bdccadbf3f6..e0c45a8a112 100644 --- a/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx +++ b/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx @@ -4,6 +4,7 @@ import { Box, Flex, HStack, Stack } from 'leather-styles/jsx'; import get from 'lodash.get'; import type { Blockchains, Inscription } from '@leather-wallet/models'; +import { CheckmarkIcon, CopyIcon, ExternalLinkIcon } from '@leather-wallet/ui'; import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; @@ -17,9 +18,6 @@ import { useToast } from '@app/features/toasts/use-toast'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; -import { CheckmarkIcon } from '@app/ui/icons/checkmark-icon'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; -import { ExternalLinkIcon } from '@app/ui/icons/external-link-icon'; import { Card } from '@app/ui/layout/card/card'; import { InscriptionPreviewCard } from '../../../components/inscription-preview-card/inscription-preview-card'; diff --git a/src/app/pages/send/send-crypto-asset-form/components/memo-field.tsx b/src/app/pages/send/send-crypto-asset-form/components/memo-field.tsx index d81ba3c43f7..73b21f5dd60 100644 --- a/src/app/pages/send/send-crypto-asset-form/components/memo-field.tsx +++ b/src/app/pages/send/send-crypto-asset-form/components/memo-field.tsx @@ -2,9 +2,10 @@ import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; import { useField } from 'formik'; import { Box } from 'leather-styles/jsx'; +import { Input } from '@leather-wallet/ui'; + import { useShowFieldError } from '@app/common/form-utils'; import { TextInputFieldError } from '@app/components/field-error'; -import { Input } from '@app/ui/components/input/input'; const name = 'memo'; diff --git a/src/app/pages/send/send-crypto-asset-form/components/recipient-address-type-field.tsx b/src/app/pages/send/send-crypto-asset-form/components/recipient-address-type-field.tsx index 3dfbde755ea..da932eef425 100644 --- a/src/app/pages/send/send-crypto-asset-form/components/recipient-address-type-field.tsx +++ b/src/app/pages/send/send-crypto-asset-form/components/recipient-address-type-field.tsx @@ -4,9 +4,9 @@ import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; import { useField, useFormikContext } from 'formik'; import { Box } from 'leather-styles/jsx'; -import { BitcoinSendFormValues, StacksSendFormValues } from '@shared/models/form.model'; +import { Input } from '@leather-wallet/ui'; -import { Input } from '@app/ui/components/input/input'; +import { BitcoinSendFormValues, StacksSendFormValues } from '@shared/models/form.model'; interface RecipientAddressTypeFieldProps { label?: string; diff --git a/src/app/pages/send/send-crypto-asset-form/components/recipient-fields/components/recipient-address-displayer.tsx b/src/app/pages/send/send-crypto-asset-form/components/recipient-fields/components/recipient-address-displayer.tsx index 1ba164382a3..7cb140dec0a 100644 --- a/src/app/pages/send/send-crypto-asset-form/components/recipient-fields/components/recipient-address-displayer.tsx +++ b/src/app/pages/send/send-crypto-asset-form/components/recipient-fields/components/recipient-address-displayer.tsx @@ -3,11 +3,12 @@ import { useCallback } from 'react'; import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; import { HStack, styled } from 'leather-styles/jsx'; +import { CopyIcon } from '@leather-wallet/ui'; + import { analytics } from '@shared/utils/analytics'; import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; interface RecipientAddressDisplayerProps { address: string; diff --git a/src/app/pages/send/send-crypto-asset-form/components/recipient-type-dropdown/recipient-type-dropdown.tsx b/src/app/pages/send/send-crypto-asset-form/components/recipient-type-dropdown/recipient-type-dropdown.tsx index 1ee2a369dbe..1f2adf1e630 100644 --- a/src/app/pages/send/send-crypto-asset-form/components/recipient-type-dropdown/recipient-type-dropdown.tsx +++ b/src/app/pages/send/send-crypto-asset-form/components/recipient-type-dropdown/recipient-type-dropdown.tsx @@ -1,8 +1,6 @@ import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; -import { DropdownMenu } from '@app/ui/components/dropdown-menu/dropdown-menu'; -import { Flag } from '@app/ui/components/flag/flag'; -import { ChevronDownIcon } from '@app/ui/icons'; +import { ChevronDownIcon, DropdownMenu, Flag } from '@leather-wallet/ui'; import { type RecipientIdentifierType, diff --git a/src/app/pages/send/send-crypto-asset-form/components/selected-asset-field.tsx b/src/app/pages/send/send-crypto-asset-form/components/selected-asset-field.tsx index a01449550fb..0c748925132 100644 --- a/src/app/pages/send/send-crypto-asset-form/components/selected-asset-field.tsx +++ b/src/app/pages/send/send-crypto-asset-form/components/selected-asset-field.tsx @@ -1,8 +1,9 @@ import { Field, useField } from 'formik'; import { Flex, styled } from 'leather-styles/jsx'; +import { Flag } from '@leather-wallet/ui'; + import { useOnMount } from '@app/common/hooks/use-on-mount'; -import { Flag } from '@app/ui/components/flag/flag'; interface SelectedAssetFieldProps { icon: React.JSX.Element; diff --git a/src/app/pages/send/send-crypto-asset-form/components/send-max-button.tsx b/src/app/pages/send/send-crypto-asset-form/components/send-max-button.tsx index 8249bb07ac5..8bf834d444f 100644 --- a/src/app/pages/send/send-crypto-asset-form/components/send-max-button.tsx +++ b/src/app/pages/send/send-crypto-asset-form/components/send-max-button.tsx @@ -5,11 +5,11 @@ import { useField } from 'formik'; import { Box } from 'leather-styles/jsx'; import type { Money } from '@leather-wallet/models'; +import { Link } from '@leather-wallet/ui'; import { analytics } from '@shared/utils/analytics'; import { useToast } from '@app/features/toasts/use-toast'; -import { Link } from '@app/ui/components/link/link'; interface SendMaxButtonProps { balance: Money; diff --git a/src/app/pages/send/send-crypto-asset-form/family/bitcoin/components/bitcoin-send-max-button.tsx b/src/app/pages/send/send-crypto-asset-form/family/bitcoin/components/bitcoin-send-max-button.tsx index 0f81ec0c898..d2ea8bc3ce6 100644 --- a/src/app/pages/send/send-crypto-asset-form/family/bitcoin/components/bitcoin-send-max-button.tsx +++ b/src/app/pages/send/send-crypto-asset-form/family/bitcoin/components/bitcoin-send-max-button.tsx @@ -2,8 +2,8 @@ import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; import { Box } from 'leather-styles/jsx'; import type { Money } from '@leather-wallet/models'; +import { Link } from '@leather-wallet/ui'; -import { Link } from '@app/ui/components/link/link'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; import { useSendMax } from '../hooks/use-send-max'; diff --git a/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form-confirmation.tsx b/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form-confirmation.tsx index 98f83ef3b4e..3090ce0e776 100644 --- a/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form-confirmation.tsx +++ b/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form-confirmation.tsx @@ -6,6 +6,7 @@ import get from 'lodash.get'; import { decodeBitcoinTx } from '@leather-wallet/bitcoin'; import { useBitcoinBroadcastTransaction } from '@leather-wallet/query'; +import { Button } from '@leather-wallet/ui'; import { createMoney, formatMoney, formatMoneyPadded, sumMoney } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; @@ -18,7 +19,6 @@ import { } from '@app/components/info-card/info-card'; import { useCurrentNativeSegwitUtxos } from '@app/query/bitcoin/address/utxos-by-address.hooks'; import { useBrc20Transfers } from '@app/query/bitcoin/ordinals/brc20/brc20-tokens.hooks'; -import { Button } from '@app/ui/components/button/button'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form.tsx b/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form.tsx index 0a22045534e..563c8ab2d41 100644 --- a/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form.tsx +++ b/src/app/pages/send/send-crypto-asset-form/form/brc20/brc20-send-form.tsx @@ -6,15 +6,13 @@ import { Box, styled } from 'leather-styles/jsx'; import get from 'lodash.get'; import type { MarketData, Money } from '@leather-wallet/models'; +import { Button, Callout, Link } from '@leather-wallet/ui'; import { convertAmountToBaseUnit, formatMoney } from '@leather-wallet/utils'; import { openInNewTab } from '@app/common/utils/open-in-new-tab'; import { Brc20AvatarIcon } from '@app/ui/components/avatar/brc20-avatar-icon'; -import { Button } from '@app/ui/components/button/button'; -import { Callout } from '@app/ui/components/callout/callout'; import { AvailableBalance } from '@app/ui/components/containers/footers/available-balance'; import { Footer } from '@app/ui/components/containers/footers/footer'; -import { Link } from '@app/ui/components/link/link'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form-confirmation.tsx b/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form-confirmation.tsx index 41851b1ae68..08f530799ef 100644 --- a/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form-confirmation.tsx +++ b/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form-confirmation.tsx @@ -14,6 +14,7 @@ import { useBitcoinBroadcastTransaction, useCryptoCurrencyMarketDataMeanAverage, } from '@leather-wallet/query'; +import { Button } from '@leather-wallet/ui'; import { baseCurrencyAmountInQuote, createMoney, @@ -34,7 +35,6 @@ import { InfoCardSeparator, } from '@app/components/info-card/info-card'; import { useCurrentNativeSegwitUtxos } from '@app/query/bitcoin/address/utxos-by-address.hooks'; -import { Button } from '@app/ui/components/button/button'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form.tsx b/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form.tsx index fff08ca4433..af3d38d5be5 100644 --- a/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form.tsx +++ b/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form.tsx @@ -7,15 +7,13 @@ import { Box } from 'leather-styles/jsx'; import { HIGH_FEE_WARNING_LEARN_MORE_URL_BTC } from '@leather-wallet/constants'; import type { CryptoCurrencies } from '@leather-wallet/models'; import { useCryptoCurrencyMarketDataMeanAverage } from '@leather-wallet/query'; +import { Button, Callout, Link } from '@leather-wallet/ui'; import { formatMoney } from '@leather-wallet/utils'; import { HighFeeDialog } from '@app/features/dialogs/high-fee-dialog/high-fee-dialog'; import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon'; -import { Button } from '@app/ui/components/button/button'; -import { Callout } from '@app/ui/components/callout/callout'; import { AvailableBalance } from '@app/ui/components/containers/footers/available-balance'; import { Footer } from '@app/ui/components/containers/footers/footer'; -import { Link } from '@app/ui/components/link/link'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/send/send-crypto-asset-form/form/send-form-confirmation.tsx b/src/app/pages/send/send-crypto-asset-form/form/send-form-confirmation.tsx index 73282ceb785..7c0d41a219d 100644 --- a/src/app/pages/send/send-crypto-asset-form/form/send-form-confirmation.tsx +++ b/src/app/pages/send/send-crypto-asset-form/form/send-form-confirmation.tsx @@ -1,14 +1,14 @@ import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; import { Stack } from 'leather-styles/jsx'; +import { Button, Callout } from '@leather-wallet/ui'; + import { FormAddressDisplayer } from '@app/components/address-displayer/form-address-displayer'; import { InfoCardAssetValue, InfoCardRow, InfoCardSeparator, } from '@app/components/info-card/info-card'; -import { Button } from '@app/ui/components/button/button'; -import { Callout } from '@app/ui/components/callout/callout'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/send/send-crypto-asset-form/form/stacks/stacks-common-send-form.tsx b/src/app/pages/send/send-crypto-asset-form/form/stacks/stacks-common-send-form.tsx index 69eecf3f2d4..73fc5d40ca3 100644 --- a/src/app/pages/send/send-crypto-asset-form/form/stacks/stacks-common-send-form.tsx +++ b/src/app/pages/send/send-crypto-asset-form/form/stacks/stacks-common-send-form.tsx @@ -11,6 +11,7 @@ import { HIGH_FEE_WARNING_LEARN_MORE_URL_STX, } from '@leather-wallet/constants'; import type { Fees, Money } from '@leather-wallet/models'; +import { Button, Link } from '@leather-wallet/ui'; import { formatMoney } from '@leather-wallet/utils'; import { StacksSendFormValues } from '@shared/models/form.model'; @@ -20,10 +21,8 @@ import { FeesRow } from '@app/components/fees-row/fees-row'; import { NonceSetter } from '@app/components/nonce-setter'; import { HighFeeDialog } from '@app/features/dialogs/high-fee-dialog/high-fee-dialog'; import { useUpdatePersistedSendFormValues } from '@app/features/popup-send-form-restoration/use-update-persisted-send-form-values'; -import { Button } from '@app/ui/components/button/button'; import { AvailableBalance } from '@app/ui/components/containers/footers/available-balance'; import { Footer } from '@app/ui/components/containers/footers/footer'; -import { Link } from '@app/ui/components/link/link'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/send/send-crypto-asset-form/form/stacks/stacks-send-form-confirmation.tsx b/src/app/pages/send/send-crypto-asset-form/form/stacks/stacks-send-form-confirmation.tsx index 1b04f7b2e4c..604ac928c50 100644 --- a/src/app/pages/send/send-crypto-asset-form/form/stacks/stacks-send-form-confirmation.tsx +++ b/src/app/pages/send/send-crypto-asset-form/form/stacks/stacks-send-form-confirmation.tsx @@ -4,12 +4,12 @@ import { deserializeTransaction } from '@stacks/transactions'; import { Box, Stack } from 'leather-styles/jsx'; import type { CryptoCurrencies } from '@leather-wallet/models'; +import { InfoCircleIcon } from '@leather-wallet/ui'; import { useLocationStateWithCache } from '@app/common/hooks/use-location-state'; import { useStacksBroadcastTransaction } from '@app/features/stacks-transaction-request/hooks/use-stacks-broadcast-transaction'; import { useStacksTransactionSummary } from '@app/features/stacks-transaction-request/hooks/use-stacks-transaction-summary'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { InfoCircleIcon } from '@app/ui/icons/info-circle-icon'; import { SendFormConfirmation } from '../send-form-confirmation'; diff --git a/src/app/pages/send/sent-summary/brc20-sent-summary.tsx b/src/app/pages/send/sent-summary/brc20-sent-summary.tsx index 42d5419499c..384d508b031 100644 --- a/src/app/pages/send/sent-summary/brc20-sent-summary.tsx +++ b/src/app/pages/send/sent-summary/brc20-sent-summary.tsx @@ -3,6 +3,7 @@ import { useLocation, useNavigate } from 'react-router-dom'; import { HStack, Stack, styled } from 'leather-styles/jsx'; import get from 'lodash.get'; +import { Callout, ExternalLinkIcon, Link } from '@leather-wallet/ui'; import { createMoney, formatMoney } from '@leather-wallet/utils'; import { HandleOpenStacksTxLinkArgs } from '@app/common/hooks/use-stacks-explorer-link'; @@ -13,10 +14,7 @@ import { InfoCardRow, InfoCardSeparator, } from '@app/components/info-card/info-card'; -import { Callout } from '@app/ui/components/callout/callout'; import { Footer } from '@app/ui/components/containers/footers/footer'; -import { Link } from '@app/ui/components/link/link'; -import { ExternalLinkIcon } from '@app/ui/icons/external-link-icon'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/send/sent-summary/btc-sent-summary.tsx b/src/app/pages/send/sent-summary/btc-sent-summary.tsx index e8e6e2f4e5c..fcc271888ac 100644 --- a/src/app/pages/send/sent-summary/btc-sent-summary.tsx +++ b/src/app/pages/send/sent-summary/btc-sent-summary.tsx @@ -2,6 +2,8 @@ import { useLocation } from 'react-router-dom'; import { HStack, Stack } from 'leather-styles/jsx'; +import { CopyIcon, ExternalLinkIcon } from '@leather-wallet/ui'; + import { analytics } from '@shared/utils/analytics'; import { useBitcoinExplorerLink } from '@app/common/hooks/use-bitcoin-explorer-link'; @@ -15,8 +17,6 @@ import { } from '@app/components/info-card/info-card'; import { useToast } from '@app/features/toasts/use-toast'; import { Footer } from '@app/ui/components/containers/footers/footer'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; -import { ExternalLinkIcon } from '@app/ui/icons/external-link-icon'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/send/sent-summary/stx-sent-summary.tsx b/src/app/pages/send/sent-summary/stx-sent-summary.tsx index cad41f948ac..728b514daf2 100644 --- a/src/app/pages/send/sent-summary/stx-sent-summary.tsx +++ b/src/app/pages/send/sent-summary/stx-sent-summary.tsx @@ -2,6 +2,8 @@ import { useLocation } from 'react-router-dom'; import { HStack, Stack } from 'leather-styles/jsx'; +import { CopyIcon, ExternalLinkIcon } from '@leather-wallet/ui'; + import { analytics } from '@shared/utils/analytics'; import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard'; @@ -15,8 +17,6 @@ import { } from '@app/components/info-card/info-card'; import { useToast } from '@app/features/toasts/use-toast'; import { Footer } from '@app/ui/components/containers/footers/footer'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; -import { ExternalLinkIcon } from '@app/ui/icons/external-link-icon'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/swap/components/swap-asset-dialog/components/swap-asset-item.tsx b/src/app/pages/swap/components/swap-asset-dialog/components/swap-asset-item.tsx index df342fd71e2..1ca60d87d8e 100644 --- a/src/app/pages/swap/components/swap-asset-dialog/components/swap-asset-item.tsx +++ b/src/app/pages/swap/components/swap-asset-dialog/components/swap-asset-item.tsx @@ -1,12 +1,11 @@ import { SwapSelectors } from '@tests/selectors/swap.selectors'; import { type SwapAsset, isFtAsset, useGetFungibleTokenMetadataQuery } from '@leather-wallet/query'; +import { ItemLayout, Pressable } from '@leather-wallet/ui'; import { formatMoneyWithoutSymbol } from '@leather-wallet/utils'; import { convertAssetBalanceToFiat } from '@app/common/asset-utils'; import { Avatar, defaultFallbackDelay, getAvatarFallback } from '@app/ui/components/avatar/avatar'; -import { ItemLayout } from '@app/ui/components/item-layout/item-layout'; -import { Pressable } from '@app/ui/pressable/pressable'; interface SwapAssetItemProps { asset: SwapAsset; diff --git a/src/app/pages/swap/components/swap-asset-select/components/select-asset-trigger-button.tsx b/src/app/pages/swap/components/swap-asset-select/components/select-asset-trigger-button.tsx index c76294f5e38..621c6f19fc3 100644 --- a/src/app/pages/swap/components/swap-asset-select/components/select-asset-trigger-button.tsx +++ b/src/app/pages/swap/components/swap-asset-select/components/select-asset-trigger-button.tsx @@ -2,9 +2,9 @@ import { SwapSelectors } from '@tests/selectors/swap.selectors'; import { useField } from 'formik'; import { HStack, styled } from 'leather-styles/jsx'; +import { Button, ChevronDownIcon } from '@leather-wallet/ui'; + import { Avatar, defaultFallbackDelay, getAvatarFallback } from '@app/ui/components/avatar/avatar'; -import { Button } from '@app/ui/components/button/button'; -import { ChevronDownIcon } from '@app/ui/icons/chevron-down-icon'; interface SelectAssetTriggerButtonProps { icon?: string; diff --git a/src/app/pages/swap/components/swap-asset-select/components/swap-asset-select.layout.tsx b/src/app/pages/swap/components/swap-asset-select/components/swap-asset-select.layout.tsx index 5753015c136..f5b2b5d1cb5 100644 --- a/src/app/pages/swap/components/swap-asset-select/components/swap-asset-select.layout.tsx +++ b/src/app/pages/swap/components/swap-asset-select/components/swap-asset-select.layout.tsx @@ -1,8 +1,8 @@ import { Box, HStack, styled } from 'leather-styles/jsx'; +import { Link } from '@leather-wallet/ui'; import { noop } from '@leather-wallet/utils'; -import { Link } from '@app/ui/components/link/link'; import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; import { SelectAssetTriggerButton } from './select-asset-trigger-button'; diff --git a/src/app/pages/swap/components/swap-asset-select/components/swap-toggle-button.tsx b/src/app/pages/swap/components/swap-asset-select/components/swap-toggle-button.tsx index 01643cbd77b..bc2fe0ebd8a 100644 --- a/src/app/pages/swap/components/swap-asset-select/components/swap-toggle-button.tsx +++ b/src/app/pages/swap/components/swap-asset-select/components/swap-toggle-button.tsx @@ -3,12 +3,11 @@ import { useNavigate } from 'react-router-dom'; import { useFormikContext } from 'formik'; import { styled } from 'leather-styles/jsx'; +import { SwapIcon } from '@leather-wallet/ui'; import { isDefined, isUndefined } from '@leather-wallet/utils'; import { RouteUrls } from '@shared/route-urls'; -import { SwapIcon } from '@app/ui/icons'; - import { SwapFormValues } from '../../../hooks/use-swap-form'; import { useSwapContext } from '../../../swap.context'; diff --git a/src/app/pages/swap/components/swap-assets-pair/swap-asset-item.layout.tsx b/src/app/pages/swap/components/swap-assets-pair/swap-asset-item.layout.tsx index 5a9beb435ba..b69956758d2 100644 --- a/src/app/pages/swap/components/swap-assets-pair/swap-asset-item.layout.tsx +++ b/src/app/pages/swap/components/swap-assets-pair/swap-asset-item.layout.tsx @@ -1,7 +1,7 @@ import { SwapSelectors } from '@tests/selectors/swap.selectors'; import { HStack, styled } from 'leather-styles/jsx'; -import { Flag } from '@app/ui/components/flag/flag'; +import { Flag } from '@leather-wallet/ui'; interface SwapAssetItemLayoutProps { caption: string; diff --git a/src/app/pages/swap/components/swap-assets-pair/swap-assets-pair.layout.tsx b/src/app/pages/swap/components/swap-assets-pair/swap-assets-pair.layout.tsx index 390098c2952..cb0cb10ab32 100644 --- a/src/app/pages/swap/components/swap-assets-pair/swap-assets-pair.layout.tsx +++ b/src/app/pages/swap/components/swap-assets-pair/swap-assets-pair.layout.tsx @@ -1,6 +1,6 @@ import { Box, Stack } from 'leather-styles/jsx'; -import { ArrowDownIcon } from '@app/ui/icons/arrow-down-icon'; +import { ArrowDownIcon } from '@leather-wallet/ui'; interface SwapAssetsPairLayoutProps { swapAssetBase: React.JSX.Element; diff --git a/src/app/pages/swap/components/swap-details/swap-detail.layout.tsx b/src/app/pages/swap/components/swap-details/swap-detail.layout.tsx index 588e12d7853..d85802ebbd4 100644 --- a/src/app/pages/swap/components/swap-details/swap-detail.layout.tsx +++ b/src/app/pages/swap/components/swap-details/swap-detail.layout.tsx @@ -2,8 +2,9 @@ import { ReactNode } from 'react'; import { Box, HStack, styled } from 'leather-styles/jsx'; +import { InfoCircleIcon } from '@leather-wallet/ui'; + import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { InfoCircleIcon } from '@app/ui/icons/info-circle-icon'; interface SwapDetailLayoutProps { dataTestId?: string; diff --git a/src/app/pages/swap/components/swap-details/swap-details.tsx b/src/app/pages/swap/components/swap-details/swap-details.tsx index f0f612565be..9328fb945f0 100644 --- a/src/app/pages/swap/components/swap-details/swap-details.tsx +++ b/src/app/pages/swap/components/swap-details/swap-details.tsx @@ -3,6 +3,7 @@ import BigNumber from 'bignumber.js'; import { HStack, styled } from 'leather-styles/jsx'; import { useGetStackNetworkBlockTimeQuery } from '@leather-wallet/query'; +import { ChevronUpIcon } from '@leather-wallet/ui'; import { createMoneyFromDecimal, formatMoneyPadded, @@ -14,7 +15,6 @@ import { import { getEstimatedConfirmationTime } from '@app/common/transactions/stacks/transaction.utils'; import { SwapSubmissionData, useSwapContext } from '@app/pages/swap/swap.context'; import { useCurrentNetworkState } from '@app/store/networks/networks.hooks'; -import { ChevronUpIcon } from '@app/ui/icons/chevron-up-icon'; import { SwapDetailLayout } from './swap-detail.layout'; import { SwapDetailsLayout } from './swap-details.layout'; diff --git a/src/app/pages/swap/components/swap-review.tsx b/src/app/pages/swap/components/swap-review.tsx index e99767770a8..e56d7434e71 100644 --- a/src/app/pages/swap/components/swap-review.tsx +++ b/src/app/pages/swap/components/swap-review.tsx @@ -2,8 +2,9 @@ import { Outlet } from 'react-router-dom'; import { SwapSelectors } from '@tests/selectors/swap.selectors'; +import { Button } from '@leather-wallet/ui'; + import { LoadingKeys, useLoading } from '@app/common/hooks/use-loading'; -import { Button } from '@app/ui/components/button/button'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/swap/swap.tsx b/src/app/pages/swap/swap.tsx index 06c9e2b4b27..f9b07e21da4 100644 --- a/src/app/pages/swap/swap.tsx +++ b/src/app/pages/swap/swap.tsx @@ -4,10 +4,10 @@ import { Outlet, useParams } from 'react-router-dom'; import { SwapSelectors } from '@tests/selectors/swap.selectors'; import { useFormikContext } from 'formik'; +import { Button } from '@leather-wallet/ui'; import { isUndefined } from '@leather-wallet/utils'; import { LoadingSpinner } from '@app/components/loading-spinner'; -import { Button } from '@app/ui/components/button/button'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { Card } from '@app/ui/layout/card/card'; import { CardContent } from '@app/ui/layout/card/card-content'; diff --git a/src/app/pages/transaction-request/transaction-request.tsx b/src/app/pages/transaction-request/transaction-request.tsx index 5208f2ff663..30f06eb15de 100644 --- a/src/app/pages/transaction-request/transaction-request.tsx +++ b/src/app/pages/transaction-request/transaction-request.tsx @@ -12,6 +12,7 @@ import { useNextNonce, useStxAvailableUnlockedBalance, } from '@leather-wallet/query'; +import { Link } from '@leather-wallet/ui'; import { logger } from '@shared/logger'; import { StacksTransactionFormValues } from '@shared/models/form.model'; @@ -41,7 +42,6 @@ import { useGenerateUnsignedStacksTransaction, useUnsignedStacksTransactionBaseState, } from '@app/store/transactions/transaction.hooks'; -import { Link } from '@app/ui/components/link/link'; function TransactionRequestBase() { const [isShowingHighFeeConfirmation, setIsShowingHighFeeConfirmation] = useState(false); diff --git a/src/app/pages/update-profile-request/components/page-top.tsx b/src/app/pages/update-profile-request/components/page-top.tsx index b697ba81f4d..09760e19cb0 100644 --- a/src/app/pages/update-profile-request/components/page-top.tsx +++ b/src/app/pages/update-profile-request/components/page-top.tsx @@ -2,12 +2,12 @@ import { memo } from 'react'; import { Flex, Stack } from 'leather-styles/jsx'; +import { Caption, Title } from '@leather-wallet/ui'; + import { getProfileDataContentFromToken } from '@app/common/profiles/requests'; import { addPortSuffix, getUrlHostname } from '@app/common/utils'; import { useCurrentNetworkState } from '@app/store/networks/networks.hooks'; import { useProfileUpdateRequestSearchParams } from '@app/store/profiles/requests.hooks'; -import { Caption } from '@app/ui/components/typography/caption'; -import { Title } from '@app/ui/components/typography/title'; function PageTopBase() { const { isTestnet, chain } = useCurrentNetworkState(); diff --git a/src/app/pages/update-profile-request/components/update-action.layout.tsx b/src/app/pages/update-profile-request/components/update-action.layout.tsx index e11cd1ced3d..8d7f8749750 100644 --- a/src/app/pages/update-profile-request/components/update-action.layout.tsx +++ b/src/app/pages/update-profile-request/components/update-action.layout.tsx @@ -1,7 +1,7 @@ import { UpdateProfileRequestSelectors } from '@tests/selectors/requests.selectors'; import { HStack } from 'leather-styles/jsx'; -import { Button } from '@app/ui/components/button/button'; +import { Button } from '@leather-wallet/ui'; interface UpdateActionLayoutProps { onUpdateProfile(): Promise; diff --git a/src/app/pages/update-profile-request/components/update-profile-error-msg.tsx b/src/app/pages/update-profile-request/components/update-profile-error-msg.tsx index fe41f2f5c1d..200c54ec44a 100644 --- a/src/app/pages/update-profile-request/components/update-profile-error-msg.tsx +++ b/src/app/pages/update-profile-request/components/update-profile-error-msg.tsx @@ -1,7 +1,6 @@ import { HStack } from 'leather-styles/jsx'; -import { Caption } from '@app/ui/components/typography/caption'; -import { ErrorIcon } from '@app/ui/icons/error-icon'; +import { Caption, ErrorIcon } from '@leather-wallet/ui'; interface ErrorMessageProps { errorMessage: string; diff --git a/src/app/ui/components/accordion/accordion.stories.tsx b/src/app/ui/components/accordion/accordion.stories.tsx deleted file mode 100644 index 2f933fb9ae7..00000000000 --- a/src/app/ui/components/accordion/accordion.stories.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { Box, styled } from 'leather-styles/jsx'; - -import { Accordion as Component } from './accordion'; - -const meta: Meta = { - component: Component.Root, - tags: ['autodocs'], - title: 'Accordion', -}; - -export default meta; - -type Story = StoryObj; - -export const Accordion: Story = { - render: () => ( - - - - - View more - - - Content - - - - - ), -}; diff --git a/src/app/ui/components/accordion/accordion.tsx b/src/app/ui/components/accordion/accordion.tsx deleted file mode 100644 index 63a17c0ac86..00000000000 --- a/src/app/ui/components/accordion/accordion.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { forwardRef } from 'react'; - -import * as RadixAccordion from '@radix-ui/react-accordion'; -import { css } from 'leather-styles/css'; - -import { ChevronDownIcon } from '@app/ui/icons'; - -const accordionTriggerStyles = css({ - position: 'relative', - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - width: '100%', - py: 'space.04', - textStyle: 'label.02', - transition: 'all 0.2s', - "&[data-state='open']": { - '& > .accordion-icon': { - transform: 'rotate(180deg)', - }, - }, - '& > .accordion-icon': { - transition: 'transform 0.2s', - }, - - _hover: { - color: 'ink.action-primary-hover', - }, -}); - -const Trigger: typeof RadixAccordion.Trigger = forwardRef((props, ref) => ( - - - {props.children} - - - -)); - -const accordionContentStyles = css({ - willChange: 'max-height', - py: 'space.03', - overflowY: 'hidden', - "&[data-state='open']": { - animation: 'slideDown 300ms ease-in', - }, - "&[data-state='closed']": { - animation: 'slideUp 150ms', - }, -}); - -const Content: typeof RadixAccordion.Content = forwardRef(({ className, ...props }, ref) => ( - -)); - -const Item: typeof RadixAccordion.Item = forwardRef((props, ref) => ( - -)); - -export const Accordion = { - Root: RadixAccordion.Root, - Item, - Content, - Trigger, -}; diff --git a/src/app/ui/components/account/account-avatar/account-avatar.tsx b/src/app/ui/components/account/account-avatar/account-avatar.tsx index fa0640ab2c1..865b4c1f88b 100644 --- a/src/app/ui/components/account/account-avatar/account-avatar.tsx +++ b/src/app/ui/components/account/account-avatar/account-avatar.tsx @@ -2,7 +2,7 @@ import { memo } from 'react'; import { Box, CircleProps } from 'leather-styles/jsx'; -import { DynamicColorCircle } from '@app/ui/components/dynamic-color-circle'; +import { DynamicColorCircle } from '@leather-wallet/ui'; const getAccountNumber = (index: number) => { // Always return account number in the Account Circle diff --git a/src/app/ui/components/account/account.card.stories.tsx b/src/app/ui/components/account/account.card.stories.tsx index 30a6e1b70ab..bd57b747a7d 100644 --- a/src/app/ui/components/account/account.card.stories.tsx +++ b/src/app/ui/components/account/account.card.stories.tsx @@ -1,8 +1,7 @@ import type { Meta } from '@storybook/react'; import { Flex } from 'leather-styles/jsx'; -import { IconButton } from '@app/ui/components/icon-button/icon-button'; -import { ArrowDownIcon, ArrowUpIcon, PlusIcon, SwapIcon } from '@app/ui/icons'; +import { ArrowDownIcon, ArrowUpIcon, IconButton, PlusIcon, SwapIcon } from '@leather-wallet/ui'; import { AccountCard as Component } from './account.card'; diff --git a/src/app/ui/components/account/account.card.tsx b/src/app/ui/components/account/account.card.tsx index aba2c75a980..9fd436b9991 100644 --- a/src/app/ui/components/account/account.card.tsx +++ b/src/app/ui/components/account/account.card.tsx @@ -3,10 +3,9 @@ import { ReactNode } from 'react'; import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { Box, Flex, styled } from 'leather-styles/jsx'; +import { ChevronDownIcon, Link, SkeletonLoader } from '@leather-wallet/ui'; + import { AccountNameLayout } from '@app/components/account/account-name'; -import { Link } from '@app/ui/components/link/link'; -import { SkeletonLoader } from '@app/ui/components/skeleton-loader/skeleton-loader'; -import { ChevronDownIcon } from '@app/ui/icons'; interface AccountCardProps { name: string; diff --git a/src/app/ui/components/address-displayer/address-displayer.stories.tsx b/src/app/ui/components/address-displayer/address-displayer.stories.tsx index 8c3f871cf44..18db079c7a2 100644 --- a/src/app/ui/components/address-displayer/address-displayer.stories.tsx +++ b/src/app/ui/components/address-displayer/address-displayer.stories.tsx @@ -1,9 +1,10 @@ import type { Meta, StoryObj } from '@storybook/react'; import { Flex } from 'leather-styles/jsx'; +import { Flag } from '@leather-wallet/ui'; + import { BtcAvatarIcon } from '../avatar/btc-avatar-icon'; import { StxAvatarIcon } from '../avatar/stx-avatar-icon'; -import { Flag } from '../flag/flag'; import { AddressDisplayer as Component } from './address-displayer'; const meta: Meta = { diff --git a/src/app/ui/components/avatar/avatar.stories.tsx b/src/app/ui/components/avatar/avatar.stories.tsx index 731a82637a1..19047dfe928 100644 --- a/src/app/ui/components/avatar/avatar.stories.tsx +++ b/src/app/ui/components/avatar/avatar.stories.tsx @@ -1,7 +1,7 @@ import StampsAvatarIconSrc from '@assets/avatars/stamps-avatar-icon.png'; import type { Meta, StoryObj } from '@storybook/react'; -import { PlaceholderIcon } from '@app/ui/icons'; +import { PlaceholderIcon } from '@leather-wallet/ui'; import { Avatar as Component } from './avatar'; diff --git a/src/app/ui/components/bullet-separator/bullet-separator.stories.tsx b/src/app/ui/components/bullet-separator/bullet-separator.stories.tsx deleted file mode 100644 index e9b4024321d..00000000000 --- a/src/app/ui/components/bullet-separator/bullet-separator.stories.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import { Caption } from '../typography/caption'; -import { Title } from '../typography/title'; -import { BulletSeparator as Component } from './bullet-separator'; - -/** - * Note that the BulletSeparator component doesn't bring it's own margins, - * these should be applied separately - */ -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'BulletSeparator', -}; - -export default meta; -type Story = StoryObj; - -export const BulletSeparator: Story = { - render: () => ( - - Item 1 - Item 2 - Item 3 - - ), -}; - -export const WithCaption: Story = { - render: () => ( - - - Item 1 - Item 2 - Item 3 - - - ), -}; - -export const WithTitle: Story = { - render: () => ( - - <Component> - <span style={{ margin: '0 6px' }}>Item 1</span> - <span style={{ margin: '0 6px' }}>Item 2</span> - <span style={{ margin: '0 6px' }}>Item 3</span> - </Component> - - ), -}; diff --git a/src/app/ui/components/bullet-separator/bullet-separator.tsx b/src/app/ui/components/bullet-separator/bullet-separator.tsx deleted file mode 100644 index 87e214737ea..00000000000 --- a/src/app/ui/components/bullet-separator/bullet-separator.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { cloneElement, isValidElement } from 'react'; - -import { Circle, CircleProps } from 'leather-styles/jsx'; - -function BulletOperator(props: CircleProps) { - return ( - - ); -} - -interface BulletSeparatorSeparatorProps { - children: React.ReactNode; -} -export function BulletSeparator({ children }: BulletSeparatorSeparatorProps) { - const parsedChildren = Array.isArray(children) ? children : [children]; - const content = parsedChildren - .flatMap((child, index) => { - if (!isValidElement(child)) return null; - return [cloneElement(child, { key: index }), ]; - }) - .filter(val => val !== null) - .slice(0, -1); - return <>{content}; -} diff --git a/src/app/ui/components/button/button.stories.tsx b/src/app/ui/components/button/button.stories.tsx deleted file mode 100644 index bff459f25e4..00000000000 --- a/src/app/ui/components/button/button.stories.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { HStack, styled } from 'leather-styles/jsx'; - -import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon'; -import { ChevronDownIcon } from '@app/ui/icons/chevron-down-icon'; -import { PlaceholderIcon } from '@app/ui/icons/placeholder-icon'; - -import { Button as Component } from './button'; - -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'Button', -}; - -export default meta; -type Story = StoryObj; - -export const Button: Story = { - parameters: { - controls: { include: ['size', 'variant'] }, - }, - args: { - children: 'Button', - size: 'md', - variant: 'solid', - }, -}; - -export const Disabled: Story = { - parameters: { - controls: { include: ['size', 'variant'] }, - }, - args: { - disabled: true, - children: 'Button', - size: 'md', - variant: 'solid', - }, -}; - -export const WithIcons: Story = { - parameters: { - controls: { include: ['size', 'variant'] }, - }, - args: { - children: ( - - - Button - - - ), - size: 'md', - variant: 'solid', - }, -}; - -export const WithToken: Story = { - parameters: { - controls: { include: [] }, - }, - args: { - children: ( - - - Button - - - ), - trigger: true, - variant: 'ghost', - }, -}; diff --git a/src/app/ui/components/button/button.tsx b/src/app/ui/components/button/button.tsx deleted file mode 100644 index 6eb811ea170..00000000000 --- a/src/app/ui/components/button/button.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { styled } from 'leather-styles/jsx'; -import { type ButtonVariantProps, button as buttonRecipe } from 'leather-styles/recipes'; - -const StyledButton = styled('button'); - -export type ButtonProps = Omit< - React.ComponentProps, - keyof ButtonVariantProps -> & - ButtonVariantProps; - -export function Button(props: ButtonProps) { - const { children, fullWidth, size, trigger, invert, type = 'button', variant, ...rest } = props; - return ( - - {children} - - ); -} diff --git a/src/app/ui/components/callout/callout.stories.tsx b/src/app/ui/components/callout/callout.stories.tsx deleted file mode 100644 index 47928f25097..00000000000 --- a/src/app/ui/components/callout/callout.stories.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import { Callout as Component } from './callout'; - -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'Callout', - args: { - variant: 'default', - }, - parameters: { - controls: { include: ['variant'] }, - }, - render: args => , -}; - -export default meta; -type Story = StoryObj; - -export const Callout: Story = { - args: { - children: - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.', - title: 'Title', - }, -}; - -export const WithOnlyTitle: Story = { - args: { - title: 'Title', - }, -}; - -export const WithLongTitle: Story = { - args: { - title: - 'This is testing a really long title to see how it will look with no caption and two lines for the title', - }, -}; - -export const WithOnlyCaption: Story = { - args: { - children: - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.', - }, -}; - -export const WithShortCaption: Story = { - args: { - children: 'Short caption with no title.', - }, -}; diff --git a/src/app/ui/components/callout/callout.tsx b/src/app/ui/components/callout/callout.tsx deleted file mode 100644 index cae69725065..00000000000 --- a/src/app/ui/components/callout/callout.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import type { ReactNode } from 'react'; - -import { type RecipeVariantProps, cva } from 'leather-styles/css'; -import { Box, type BoxProps, Stack, styled } from 'leather-styles/jsx'; - -import { Flag } from '../flag/flag'; -import { getIconVariant } from './callout.utils'; - -const calloutRecipe = cva({ - base: { - color: 'ink.text-primary', - textAlign: 'left', - width: '100%', - }, - variants: { - variant: { - default: { - bg: 'ink.text-non-interactive', - }, - error: { - bg: 'red.background-secondary', - }, - info: { - bg: 'blue.background-secondary', - }, - success: { - bg: 'green.background-secondary', - }, - warning: { - bg: 'yellow.background-secondary', - }, - }, - }, - defaultVariants: { - variant: 'default', - }, -}); - -type CalloutVariants = RecipeVariantProps; - -interface CalloutProps extends BoxProps { - icon?: ReactNode; - title?: string; -} -export function Callout(props: CalloutProps & CalloutVariants) { - const { children, icon, title, variant = 'default', ...rest } = props; - return ( - - - - {title && ( - - {title} - - )} - {children && {children}} - - - - ); -} diff --git a/src/app/ui/components/callout/callout.utils.tsx b/src/app/ui/components/callout/callout.utils.tsx deleted file mode 100644 index cb61f90d358..00000000000 --- a/src/app/ui/components/callout/callout.utils.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { CheckmarkCircleIcon, ErrorCircleIcon, ErrorIcon, InfoCircleIcon } from '@app/ui/icons'; - -export function getIconVariant(variant?: string) { - switch (variant) { - case 'error': - return ; - case 'success': - return ; - case 'warning': - return ; - case 'info': - return ; - default: - return undefined; - } -} diff --git a/src/app/ui/components/containers/dialog/dialog.stories.tsx b/src/app/ui/components/containers/dialog/dialog.stories.tsx index fc746780938..7deaf050711 100644 --- a/src/app/ui/components/containers/dialog/dialog.stories.tsx +++ b/src/app/ui/components/containers/dialog/dialog.stories.tsx @@ -2,7 +2,8 @@ import { useState } from 'react'; import type { Meta } from '@storybook/react'; -import { Button } from '../../button/button'; +import { Button } from '@leather-wallet/ui'; + import { Dialog as Component } from './dialog'; const meta: Meta = { diff --git a/src/app/ui/components/containers/footers/available-balance.tsx b/src/app/ui/components/containers/footers/available-balance.tsx index 8d06f60e85e..b9fc0f23872 100644 --- a/src/app/ui/components/containers/footers/available-balance.tsx +++ b/src/app/ui/components/containers/footers/available-balance.tsx @@ -1,7 +1,8 @@ import { Box, Flex, HStack, styled } from 'leather-styles/jsx'; +import { InfoCircleIcon } from '@leather-wallet/ui'; + import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip'; -import { InfoCircleIcon } from '@app/ui/icons/info-circle-icon'; interface AvailableBalanceProps { balance: string; diff --git a/src/app/ui/components/containers/footers/footer.stories.tsx b/src/app/ui/components/containers/footers/footer.stories.tsx index 61561d0eec0..d8c155f7b99 100644 --- a/src/app/ui/components/containers/footers/footer.stories.tsx +++ b/src/app/ui/components/containers/footers/footer.stories.tsx @@ -1,9 +1,8 @@ import type { Meta } from '@storybook/react'; import { Flex, styled } from 'leather-styles/jsx'; -import { Button } from '@app/ui/components/button/button'; +import { Button, Link } from '@leather-wallet/ui'; -import { Link } from '../../link/link'; import { Footer as Component } from './footer'; const meta: Meta = { diff --git a/src/app/ui/components/containers/headers/components/big-title-header.tsx b/src/app/ui/components/containers/headers/components/big-title-header.tsx index fd263f671c2..6ce1432b95b 100644 --- a/src/app/ui/components/containers/headers/components/big-title-header.tsx +++ b/src/app/ui/components/containers/headers/components/big-title-header.tsx @@ -3,7 +3,7 @@ import { ReactNode } from 'react'; import { SharedComponentsSelectors } from '@tests/selectors/shared-component.selectors'; import { Flex, styled } from 'leather-styles/jsx'; -import { CloseIcon } from '@app/ui/icons'; +import { CloseIcon } from '@leather-wallet/ui'; import { HeaderActionButton } from './header-action-button'; diff --git a/src/app/ui/components/containers/headers/components/header-action-button.tsx b/src/app/ui/components/containers/headers/components/header-action-button.tsx index 1a86ff8c8c8..d6c93092bf4 100644 --- a/src/app/ui/components/containers/headers/components/header-action-button.tsx +++ b/src/app/ui/components/containers/headers/components/header-action-button.tsx @@ -1,6 +1,6 @@ import { FlexProps } from 'leather-styles/jsx'; -import { IconButton } from '../../../icon-button/icon-button'; +import { IconButton } from '@leather-wallet/ui'; interface HeaderActionButtonProps extends FlexProps { icon: React.JSX.Element; diff --git a/src/app/ui/components/containers/headers/components/network-mode-badge.tsx b/src/app/ui/components/containers/headers/components/network-mode-badge.tsx deleted file mode 100644 index 539e02b928e..00000000000 --- a/src/app/ui/components/containers/headers/components/network-mode-badge.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { Flex } from 'leather-styles/jsx'; - -import { Tag } from '@app/ui/components/tag/tag'; - -interface NetworkModeBadge { - isTestnetChain: boolean; - name: string; -} - -export function NetworkModeBadge({ isTestnetChain, name }: NetworkModeBadge) { - if (!isTestnetChain) return null; - - return ( - - - - ); -} diff --git a/src/app/ui/components/containers/headers/dialog-header.tsx b/src/app/ui/components/containers/headers/dialog-header.tsx index 7280da5478b..1f5cb821570 100644 --- a/src/app/ui/components/containers/headers/dialog-header.tsx +++ b/src/app/ui/components/containers/headers/dialog-header.tsx @@ -3,7 +3,7 @@ import { ReactNode } from 'react'; import { SharedComponentsSelectors } from '@tests/selectors/shared-component.selectors'; import { Flex, styled } from 'leather-styles/jsx'; -import { CloseIcon } from '@app/ui/icons'; +import { CloseIcon } from '@leather-wallet/ui'; import { HeaderActionButton } from './components/header-action-button'; diff --git a/src/app/ui/components/containers/headers/header.tsx b/src/app/ui/components/containers/headers/header.tsx index f2852122deb..be5376a4ce6 100644 --- a/src/app/ui/components/containers/headers/header.tsx +++ b/src/app/ui/components/containers/headers/header.tsx @@ -3,7 +3,7 @@ import { ReactNode } from 'react'; import { SharedComponentsSelectors } from '@tests/selectors/shared-component.selectors'; import { Flex, Grid, GridItem, HStack, styled } from 'leather-styles/jsx'; -import { ArrowLeftIcon, CloseIcon } from '@app/ui/icons'; +import { ArrowLeftIcon, CloseIcon } from '@leather-wallet/ui'; import { BigTitleHeader } from './components/big-title-header'; import { HeaderActionButton } from './components/header-action-button'; diff --git a/src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx b/src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx deleted file mode 100644 index 183e6275f65..00000000000 --- a/src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { ReactNode } from 'react'; - -import { Flex } from 'leather-styles/jsx'; - -interface DropdownMenuItemLayoutProps { - contentLeft: ReactNode; - contentRight?: ReactNode; -} -export function DropdownMenuItemLayout({ contentLeft, contentRight }: DropdownMenuItemLayoutProps) { - return ( - - {contentLeft} - {contentRight} - - ); -} diff --git a/src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx b/src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx deleted file mode 100644 index 493e456aa0c..00000000000 --- a/src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { HStack, styled } from 'leather-styles/jsx'; - -import { PlaceholderIcon } from '../../icons/placeholder-icon'; -import { DropdownMenu as Component, DropdownMenuItem } from './dropdown-menu'; -import { DropdownMenuItemLayout } from './dropdown-menu-item.layout'; - -const items: DropdownMenuItem[] = [{ label: 'Label 1' }, { label: 'Label 2' }]; - -const meta: Meta = { - component: Component.Root, - tags: ['autodocs'], - title: 'DropdownMenu', -}; - -export default meta; -type Story = StoryObj; - -export const DropdownMenu: Story = { - render: () => ( - - - Button - - - - - Label - {items.map(item => ( - - - - {item.label} - - } - /> - - ))} - - - - - ), -}; diff --git a/src/app/ui/components/dropdown-menu/dropdown-menu.tsx b/src/app/ui/components/dropdown-menu/dropdown-menu.tsx deleted file mode 100644 index edf39d6a5bf..00000000000 --- a/src/app/ui/components/dropdown-menu/dropdown-menu.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { ReactNode, forwardRef } from 'react'; - -import * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'; -import { css } from 'leather-styles/css'; -import { type HTMLStyledProps, styled } from 'leather-styles/jsx'; - -import { ChevronDownIcon } from '@app/ui/icons'; -import { pressableBaseStyles, pressableStyles } from '@app/ui/pressable/pressable'; - -import { Flag } from '../flag/flag'; - -export interface DropdownMenuItem { - iconLeft?: ReactNode; - iconRight?: ReactNode; - label: string; -} -const dropdownButtonStyles = css({ - bg: 'ink.background-primary', - borderRadius: 'xs', - fontWeight: 500, - maxWidth: 'fit-content', - maxHeight: 'fit-content', - px: 'space.04', - py: 'space.03', - textStyle: 'label.02', - userSelect: 'none', - '[data-state=open] &': { bg: 'ink.component-background-pressed' }, -}); - -function Button({ children, ...props }: HTMLStyledProps<'div'>) { - return ( - - }> - {children} - - - ); -} - -const dropdownIconButtonStyles = css({ - _hover: { bg: 'ink.component-background-hover' }, - _focus: { outline: 'none' }, - p: 'space.02', - - '&[data-state=open]': { bg: 'ink.component-background-pressed' }, -}); -const IconButton: typeof RadixDropdownMenu.Trigger = forwardRef((props, ref) => ( - -)); - -const dropdownTriggerStyles = css({ - _focus: { outline: 'none' }, -}); - -const Trigger: typeof RadixDropdownMenu.Trigger = forwardRef((props, ref) => ( - -)); - -const dropdownContentStyles = css({ - alignItems: 'center', - '--base-menu-padding': '0px', - bg: 'ink.background-primary', - borderRadius: 'xs', - boxShadow: - '0px 12px 24px 0px rgba(18, 16, 15, 0.08), 0px 4px 8px 0px rgba(18, 16, 15, 0.08), 0px 0px 2px 0px rgba(18, 16, 15, 0.08)', - p: '0', - willChange: 'transform, opacity', - zIndex: 999, - // _closed: { animation: 'slideDownAndOut 140ms ease-in-out' }, - // _open: { animation: 'slideUpAndFade 140ms ease-in-out' }, -}); -const Content: typeof RadixDropdownMenu.Content = forwardRef(({ className, ...props }, ref) => ( - -)); - -const dropdownMenuLabelStyles = css({ - color: 'ink.text-subdued', - height: 'auto', - px: 'space.03', - py: 'space.02', - textStyle: 'body.02', - width: '100%', -}); -const Label: typeof RadixDropdownMenu.Label = forwardRef((props, ref) => ( - -)); - -const dropdownItemStyles = css({ p: 'space.03' }); -const Item: typeof RadixDropdownMenu.Item = forwardRef((props, ref) => ( - - - -)); - -const dropdownMenuSeparatorStyles = css({ - bg: 'ink.background-primary', - color: 'ink.border-default', - mx: '0px', - my: 'space.03', -}); -const Separator: typeof RadixDropdownMenu.Separator = forwardRef((props, ref) => ( - -)); -const dropdownMenuGroupStyles = css({ - p: 'space.02', -}); -const Group: typeof RadixDropdownMenu.Group = forwardRef((props, ref) => ( - -)); - -export const DropdownMenu = { - Root: RadixDropdownMenu.Root, - Group, - Portal: RadixDropdownMenu.Portal, - Trigger, - Button, - IconButton, - Content, - Label, - Item, - Separator, -}; diff --git a/src/app/ui/components/dynamic-color-circle.tsx b/src/app/ui/components/dynamic-color-circle.tsx deleted file mode 100644 index e0d62e71db4..00000000000 --- a/src/app/ui/components/dynamic-color-circle.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { Circle, CircleProps, styled } from 'leather-styles/jsx'; - -interface DynamicColorCircleProps extends CircleProps { - sizeParam?: string; - value: string; -} -export function DynamicColorCircle({ - children, - sizeParam = '36', - value, - ...props -}: DynamicColorCircleProps) { - return ( - - - {children} - - ); -} diff --git a/src/app/ui/components/flag/flag.stories.tsx b/src/app/ui/components/flag/flag.stories.tsx deleted file mode 100644 index ecbd492c38f..00000000000 --- a/src/app/ui/components/flag/flag.stories.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { Box, Circle } from 'leather-styles/jsx'; - -import { Flag as Component } from './flag'; - -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'Layout/Flag', - argTypes: { - align: { - options: ['top', 'middle', 'bottom'], - control: { type: 'radio' }, - defaultValue: 'middle', - }, - }, - parameters: { - controls: { include: ['align'] }, - }, - render: ({ children, ...args }) => ( - }> - {children} - - ), -}; - -export default meta; - -type Story = StoryObj; - -export const Flag: Story = { - args: { - children: , - }, -}; diff --git a/src/app/ui/components/flag/flag.tsx b/src/app/ui/components/flag/flag.tsx deleted file mode 100644 index 32c2688bd03..00000000000 --- a/src/app/ui/components/flag/flag.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { css } from 'leather-styles/css'; -import { Box, Flex, FlexProps } from 'leather-styles/jsx'; -import { SpacingToken } from 'leather-styles/tokens'; - -const flagStyles = css({ - '&[data-align="top"]': { - alignItems: 'start', - }, - '&[data-align="middle"]': { - alignItems: 'center', - }, - '&[data-align="bottom"]': { - alignItems: 'end', - }, -}); - -type FlagAlignment = 'top' | 'middle' | 'bottom'; - -export interface FlagProps extends FlexProps { - spacing?: SpacingToken; - align?: FlagAlignment; - children: React.ReactNode; - img?: React.ReactNode; - reverse?: boolean; -} - -/** - * Implementation of flag object - * https://csswizardry.com/2013/05/the-flag-object/ - * Allows only two children: - * 1st. Image content - * 2nd. Body content - */ -export function Flag({ - spacing = 'space.03', - align = 'middle', - reverse = false, - img, - children, - ...props -}: FlagProps) { - return ( - - - {img} - - {children} - - ); -} diff --git a/src/app/ui/components/hr.tsx b/src/app/ui/components/hr.tsx deleted file mode 100644 index 484770da621..00000000000 --- a/src/app/ui/components/hr.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { styled } from 'leather-styles/jsx'; -import { HTMLStyledProps } from 'leather-styles/types'; - -export type HrProps = HTMLStyledProps<'hr'>; - -export function Hr(props: HrProps) { - return ; -} - -export function DashedHr(props: HrProps) { - return ; -} diff --git a/src/app/ui/components/icon-button/accessible-icon.tsx b/src/app/ui/components/icon-button/accessible-icon.tsx deleted file mode 100644 index 1c1a6cc5694..00000000000 --- a/src/app/ui/components/icon-button/accessible-icon.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import * as AccessibleIconPrimitive from '@radix-ui/react-accessible-icon'; - -type Props = AccessibleIconPrimitive.AccessibleIconProps; - -export default function AccessibleIcon(props: Props) { - return ; -} diff --git a/src/app/ui/components/icon-button/icon-button.stories.tsx b/src/app/ui/components/icon-button/icon-button.stories.tsx deleted file mode 100644 index e5e1d392420..00000000000 --- a/src/app/ui/components/icon-button/icon-button.stories.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; - -import { PlaceholderIcon, SendIcon } from '@app/ui/icons'; - -import { IconButton as Component } from './icon-button'; - -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'Icon Button', - parameters: { - controls: { include: [] }, - }, -}; - -export default meta; -type Story = StoryObj; - -export const IconButton: Story = { - args: { - icon: , - }, -}; - -export const WithLabel: Story = { - args: { - icon: , - label: 'Send', - }, -}; diff --git a/src/app/ui/components/icon-button/icon-button.tsx b/src/app/ui/components/icon-button/icon-button.tsx deleted file mode 100644 index 5dadfa9e5eb..00000000000 --- a/src/app/ui/components/icon-button/icon-button.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Stack, styled } from 'leather-styles/jsx'; - -import { Button, type ButtonProps } from '@app/ui/components/button/button'; -import AccessibleIcon from '@app/ui/components/icon-button/accessible-icon'; - -interface IconButtonProps extends ButtonProps { - icon: React.JSX.Element; - label?: string; -} -export function IconButton({ icon, label, disabled, ...rest }: IconButtonProps) { - return ( - - ); -} diff --git a/src/app/ui/components/input/input.stories.tsx b/src/app/ui/components/input/input.stories.tsx deleted file mode 100644 index 199aef5db32..00000000000 --- a/src/app/ui/components/input/input.stories.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; - -import { Input } from './input'; - -const meta: Meta = { - component: Input.Root, - tags: ['autodocs'], - title: 'Input', -}; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - render: () => ( - - Label - - - ), -}; - -export const Error: Story = { - render: () => ( - - Error field - - - ), -}; - -export const Disabled: Story = { - render: () => ( - - Field is disabled - - - ), -}; - -export const DefaultValue: Story = { - render: () => ( - - Description - - - ), -}; - -/** - * Layout needs to be adjusted in case where there's no label provided - * An example of this is our Secret Key input form - */ -export const InputNoLabel: Story = { - render: () => ( - - - - ), -}; - -/** - * When using a placeholder, the label *must* come after the `Input.Field`. - */ -export const WithPlaceholder: Story = { - render: () => ( - - - Error field - - ), -}; diff --git a/src/app/ui/components/input/input.tsx b/src/app/ui/components/input/input.tsx deleted file mode 100644 index 64c5c217ed8..00000000000 --- a/src/app/ui/components/input/input.tsx +++ /dev/null @@ -1,217 +0,0 @@ -import { - type ComponentProps, - LegacyRef, - createContext, - forwardRef, - useContext, - useImperativeHandle, - useRef, - useState, -} from 'react'; - -import { sva } from 'leather-styles/css'; -import { SystemStyleObject } from 'leather-styles/types'; - -import { useOnMount } from '@app/common/hooks/use-on-mount'; -import { propIfDefined } from '@app/common/utils'; -import { createStyleContext } from '@app/ui/utils/style-context'; - -const hackyDelayOneMs = 1; - -const transformedLabelStyles: SystemStyleObject = { - textStyle: 'label.03', - transform: 'translateY(-12px)', - fontWeight: 500, - pointerEvents: 'all', -}; - -const input = sva({ - slots: ['root', 'label', 'input'], - base: { - root: { - display: 'block', - pos: 'relative', - minHeight: '64px', - p: 'space.04', - ring: 'none', - textStyle: 'body.02', - zIndex: 4, - color: 'ink.text-subdued', - _before: { - content: '""', - rounded: 'xs', - pos: 'absolute', - top: '-1px', - left: '-1px', - right: '-1px', - bottom: '-1px', - border: '3px solid transparent', - zIndex: 9, - pointerEvents: 'none', - }, - _focusWithin: { - '& label': { color: 'ink.text-primary', ...transformedLabelStyles }, - _before: { - border: 'action', - borderWidth: '2px', - }, - }, - '&[data-has-error="true"]': { - color: 'red.action-primary-default', - _before: { - borderColor: 'red.action-primary-default', - borderWidth: '2px', - }, - }, - }, - input: { - background: 'transparent', - appearance: 'none', - rounded: 'xs', - pos: 'absolute', - px: 'space.04', - top: 0, - left: 0, - right: 0, - bottom: 0, - zIndex: 5, - textStyle: 'body.02', - color: 'ink.text-primary', - border: '1px solid', - borderColor: 'ink.border-transparent', - _disabled: { - bg: 'ink.component-background-default', - borderColor: 'ink.text-non-interactive', - cursor: 'not-allowed', - }, - _focus: { ring: 'none' }, - _placeholder: { color: 'ink.text-subdued' }, - '&:placeholder-shown + label': transformedLabelStyles, - '[data-has-label="true"] &': { - pt: '22px', - }, - }, - label: { - pos: 'absolute', - top: '38%', - left: 'space.04', - zIndex: 9, - color: 'inherit', - // In empty state, with no placeholder, click events must be disabled to - // allow the label to be ignored, and the underlying input to be focused - pointerEvents: 'none', - textStyle: 'body.02', - transition: 'font-size 100ms ease-in-out, transform 100ms ease-in-out', - // Move the input's label to the top when the input has a value - '[data-has-value="true"] &': transformedLabelStyles, - '[data-shrink="true"] &': transformedLabelStyles, - }, - }, -}); - -type InputChldren = 'root' | 'label' | 'input'; - -const { withProvider, withContext } = createStyleContext(input); - -interface InputContextProps { - hasValue: boolean; - setHasValue(hasValue: boolean): void; - registerChild(child: string): void; - children: InputChldren[]; -} - -const InputContext = createContext(null); - -function useInputContext() { - const context = useContext(InputContext); - if (!context) throw new Error('useInputContext must be used within an Input.Root'); - return context; -} - -const RootBase = withProvider('div', 'root'); - -interface RootProps extends ComponentProps<'div'> { - hasError?: boolean; - /** - * Display the label in a top fixed position. Often necessary when - * programmatically updating inputs, similar to issues described here - * https://mui.com/material-ui/react-text-field/#limitations - */ - shrink?: boolean; -} -function Root({ hasError, shrink, ...props }: RootProps) { - const [hasValue, setHasValue] = useState(false); - const [children, setChildren] = useState(['root']); - - function registerChild(child: InputChldren) { - setChildren(children => [...children, child]); - } - - const dataAttrs = { - ...propIfDefined('data-has-error', hasError), - ...propIfDefined('data-shrink', shrink), - 'data-has-label': children.includes('label'), - }; - - return ( - - - - ); -} - -const FieldBase = withContext('input', 'input'); - -const Field = forwardRef(({ type, ...props }: ComponentProps<'input'>, ref) => { - const { setHasValue } = useInputContext(); - const innerRef = useRef(null); - - useImperativeHandle(ref, () => innerRef.current); - - // We need to determine whether the input has a value on it's initial - // render. In many places we use Formik to apply default form values. - // Formik sets these values after the initial render, so we need to wait - // before doing this check to see if there's a value. - useOnMount( - () => - void setTimeout(() => { - if (innerRef.current?.value !== '') setHasValue(true); - }, hackyDelayOneMs) - ); - - // `type=number` is bad UX, instead we follow guidance here - // https://mui.com/material-ui/react-text-field/#type-quot-number-quot - // https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/ - const inputTypeProps = - type === 'number' - ? ({ type: 'text', inputMode: 'numeric', pattern: '[0-9]*' } as const) - : { type }; - - return ( - { - // Note: this logic to determine if the field is empty may have to be - // made dynamic to `input=type`, and potentially made configurable with - // a callback passed to `Input.Root` e.g. - // ``` - // typeof value === 'number' && value <= 0} /> - // ``` - if (e.target instanceof HTMLInputElement) setHasValue(e.target.value !== ''); - props.onInput?.(e); - }} - /> - ); -}); - -const LabelBase = withContext('label', 'label'); - -const Label = forwardRef((props: ComponentProps<'label'>, ref: LegacyRef) => { - const { registerChild } = useInputContext(); - useOnMount(() => registerChild('label')); - return ; -}); - -export const Input = { Root, Field, Label }; diff --git a/src/app/ui/components/item-layout/item-layout-with-buttons.tsx b/src/app/ui/components/item-layout/item-layout-with-buttons.tsx deleted file mode 100644 index c60da287d03..00000000000 --- a/src/app/ui/components/item-layout/item-layout-with-buttons.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { ReactNode } from 'react'; - -import { Flex, HStack, Stack, styled } from 'leather-styles/jsx'; - -import { pressableCaptionStyles } from '@app/ui/pressable/pressable'; - -import { Flag } from '../flag/flag'; - -interface ItemWithButtonsLayoutProps { - buttons: ReactNode; - caption: string; - flagImg: ReactNode; - title: string; -} -export function ItemLayoutWithButtons({ - buttons, - caption, - flagImg, - title, -}: ItemWithButtonsLayoutProps) { - return ( - - - - {title} - - {caption} - - - - {buttons} - - - - ); -} diff --git a/src/app/ui/components/item-layout/item-layout.stories.tsx b/src/app/ui/components/item-layout/item-layout.stories.tsx deleted file mode 100644 index 7b43d5f8ec3..00000000000 --- a/src/app/ui/components/item-layout/item-layout.stories.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { Box, Circle } from 'leather-styles/jsx'; - -import { ItemLayout as Component } from './item-layout'; - -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'Layout/Item', -}; - -export default meta; -type Story = StoryObj; - -export const Item: Story = { - render: () => ( - } - titleLeft={} - captionLeft={} - titleRight={} - captionRight={} - /> - ), -}; diff --git a/src/app/ui/components/item-layout/item-layout.tsx b/src/app/ui/components/item-layout/item-layout.tsx deleted file mode 100644 index 1822e5381e9..00000000000 --- a/src/app/ui/components/item-layout/item-layout.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import { ReactNode, isValidElement } from 'react'; - -import { Box, Flex, HStack, Stack, styled } from 'leather-styles/jsx'; - -import { pressableCaptionStyles, pressableChevronStyles } from '@app/ui/pressable/pressable'; - -import { CheckmarkIcon } from '../../icons/checkmark-icon'; -import { ChevronUpIcon } from '../../icons/chevron-up-icon'; -import { Flag } from '../flag/flag'; - -interface ItemLayoutProps { - captionLeft: ReactNode; - captionRight?: ReactNode; - flagImg: ReactNode; - isDisabled?: boolean; - isSelected?: boolean; - showChevron?: boolean; - titleLeft: ReactNode; - titleRight: ReactNode; -} -export function ItemLayout({ - captionLeft, - captionRight, - flagImg, - isSelected, - showChevron, - titleLeft, - titleRight, -}: ItemLayoutProps) { - return ( - - - - - {isValidElement(titleLeft) ? ( - titleLeft - ) : ( - {titleLeft} - )} - {isSelected && ( - - - - )} - - {isValidElement(captionLeft) ? ( - captionLeft - ) : ( - - {captionLeft} - - )} - - - - {isValidElement(titleRight) ? ( - titleRight - ) : ( - {titleRight} - )} - {isValidElement(captionRight) ? ( - captionRight - ) : ( - - {captionRight} - - )} - - {showChevron && ( - - )} - - - - ); -} diff --git a/src/app/ui/components/link/link.stories.tsx b/src/app/ui/components/link/link.stories.tsx deleted file mode 100644 index 1baf4cfdf65..00000000000 --- a/src/app/ui/components/link/link.stories.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; - -import { Link as Component } from './link'; - -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'Link', -}; - -export default meta; -type Story = StoryObj; - -export const Link: Story = { - parameters: { - controls: { include: ['size', 'variant'] }, - }, - args: { - children: 'Link', - size: 'md', - variant: 'underlined', - }, -}; - -export const Disabled: Story = { - parameters: { - controls: { include: ['size', 'variant'] }, - }, - args: { - children: 'Link', - disabled: true, - size: 'md', - variant: 'underlined', - }, -}; diff --git a/src/app/ui/components/link/link.tsx b/src/app/ui/components/link/link.tsx deleted file mode 100644 index bcbbd902449..00000000000 --- a/src/app/ui/components/link/link.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { ForwardedRef, forwardRef } from 'react'; - -import { styled } from 'leather-styles/jsx'; -import { type LinkVariantProps, link as linkRecipe } from 'leather-styles/recipes/link'; - -const StyledLink = styled('a'); - -type LinkProps = Omit, keyof LinkVariantProps> & - LinkVariantProps; - -export const Link = forwardRef((props: LinkProps, ref: ForwardedRef) => { - const { children, disabled, fullWidth, size, invert, variant, ...rest } = props; - - return ( - - {children} - - ); -}); diff --git a/src/app/ui/components/logo.tsx b/src/app/ui/components/logo.tsx deleted file mode 100644 index 486c87c92c7..00000000000 --- a/src/app/ui/components/logo.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { styled } from 'leather-styles/jsx'; - -import { LogomarkIcon } from '@app/ui/icons/logomark-icon'; - -interface LogoProps { - onClick?(): void; -} -export function Logo({ onClick }: LogoProps) { - return ( - - - - ); -} diff --git a/src/app/ui/components/secret-key/mnemonic-key/mnemonic-word-input.tsx b/src/app/ui/components/secret-key/mnemonic-key/mnemonic-word-input.tsx index 7bb301386cc..9c59183cffd 100644 --- a/src/app/ui/components/secret-key/mnemonic-key/mnemonic-word-input.tsx +++ b/src/app/ui/components/secret-key/mnemonic-key/mnemonic-word-input.tsx @@ -2,9 +2,10 @@ import { useState } from 'react'; import { useField } from 'formik'; +import { Input } from '@leather-wallet/ui'; +import { extractPhraseFromString } from '@leather-wallet/utils'; + import { useIsFieldDirty } from '@app/common/form-utils'; -import { extractPhraseFromString } from '@app/common/utils'; -import { Input } from '@app/ui/components/input/input'; interface MnemonicWordInputProps { fieldNumber: number; diff --git a/src/app/ui/components/secret-key/secret-key.layout.tsx b/src/app/ui/components/secret-key/secret-key.layout.tsx index 651aa81a822..b1eee2dcc98 100644 --- a/src/app/ui/components/secret-key/secret-key.layout.tsx +++ b/src/app/ui/components/secret-key/secret-key.layout.tsx @@ -4,10 +4,7 @@ import { OnboardingSelectors } from '@tests/selectors/onboarding.selectors'; import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { Flex, HStack, Stack, styled } from 'leather-styles/jsx'; -import { Button } from '@app/ui/components/button/button'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; -import { EyeIcon } from '@app/ui/icons/eye-icon'; -import { EyeSlashIcon } from '@app/ui/icons/eye-slash-icon'; +import { Button, CopyIcon, EyeIcon, EyeSlashIcon } from '@leather-wallet/ui'; import { SecretKeyGrid } from './secret-key-grid'; import { SecretKeyWord } from './secret-key-word'; diff --git a/src/app/ui/components/select/select-item.layout.tsx b/src/app/ui/components/select/select-item.layout.tsx deleted file mode 100644 index 41df5c55245..00000000000 --- a/src/app/ui/components/select/select-item.layout.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { ReactNode } from 'react'; - -import { Flex } from 'leather-styles/jsx'; - -interface SelectItemLayoutProps { - contentLeft: ReactNode; - contentRight?: ReactNode; -} -export function SelectItemLayout({ contentLeft, contentRight }: SelectItemLayoutProps) { - return ( - - {contentLeft} - {contentRight} - - ); -} diff --git a/src/app/ui/components/select/select.stories.tsx b/src/app/ui/components/select/select.stories.tsx deleted file mode 100644 index ce31ac46c23..00000000000 --- a/src/app/ui/components/select/select.stories.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { HStack, styled } from 'leather-styles/jsx'; - -import { CheckmarkIcon } from '@app/ui/icons/checkmark-icon'; -import { ChevronDownIcon } from '@app/ui/icons/chevron-down-icon'; -import { PlaceholderIcon } from '@app/ui/icons/placeholder-icon'; - -import { Select as Component, SelectItem } from './select'; -import { SelectItemLayout } from './select-item.layout'; - -const items: SelectItem[] = [{ label: 'Label 1' }, { label: 'Label 2' }]; - -const meta: Meta = { - component: Component.Root, - tags: ['autodocs'], - title: 'Select', -}; - -export default meta; -type Story = StoryObj; - -export const Select: Story = { - render: () => ( - - - - - - - - - - - - Label - {items.map(item => ( - - - - - {item.label} - - - - - - } - contentRight={} - /> - - ))} - - - - - - ), -}; diff --git a/src/app/ui/components/select/select.tsx b/src/app/ui/components/select/select.tsx deleted file mode 100644 index f2dd4297482..00000000000 --- a/src/app/ui/components/select/select.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import { ReactNode, forwardRef } from 'react'; - -import * as RadixSelect from '@radix-ui/react-select'; -import { css } from 'leather-styles/css'; -import { styled } from 'leather-styles/jsx'; - -import { pressableBaseStyles, pressableStyles } from '@app/ui/pressable/pressable'; - -export interface SelectItem { - iconLeft?: ReactNode; - iconRight?: ReactNode; - label: string; -} - -const selectTriggerStyles = css({ - alignItems: 'center', - bg: 'ink.background-primary', - borderRadius: 'xs', - display: 'flex', - fontWeight: 500, - gap: 'space.02', - maxWidth: 'fit-content', - maxHeight: 'fit-content', - px: 'space.04', - py: 'space.03', - textStyle: 'label.02', - - '&[data-state=open]': { - bg: 'ink.component-background-pressed', - }, -}); -const Trigger: typeof RadixSelect.Trigger = forwardRef((props, ref) => ( - -)); - -const selectContentStyles = css({ - alignItems: 'center', - animationDuration: '400ms', - animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)', - '--base-menu-padding': '0px', - bg: 'ink.background-primary', - borderRadius: 'xs', - boxShadow: - '0px 12px 24px 0px rgba(18, 16, 15, 0.08), 0px 4px 8px 0px rgba(18, 16, 15, 0.08), 0px 0px 2px 0px rgba(18, 16, 15, 0.08)', - minWidth: '256px', - p: 'space.02', - willChange: 'transform, opacity', - zIndex: 999, - - '&[data-side=bottom]': { - animationName: 'slideUpAndFade', - }, -}); -const Content: typeof RadixSelect.Content = forwardRef((props, ref) => ( - -)); - -const selectViewportStyles = css({ - width: '100%', -}); -const Viewport: typeof RadixSelect.Viewport = forwardRef((props, ref) => ( - -)); - -const selectLabelStyles = css({ - color: 'ink.text-subdued', - height: 'auto', - px: 'space.03', - py: 'space.02', - textStyle: 'body.02', - width: '100%', -}); -const Label: typeof RadixSelect.Label = forwardRef((props, ref) => ( - -)); - -const selectItemStyles = css({ p: 'space.03' }); - -const Item: typeof RadixSelect.Item = forwardRef((props, ref) => ( - - - -)); - -const selectSeparatorStyles = css({ - bg: 'ink.background-primary', - color: 'ink.border-default', - mx: '0px', - my: 'space.03', -}); -const Separator: typeof RadixSelect.Separator = forwardRef((props, ref) => ( - -)); - -export const Select = { - Root: RadixSelect.Root, - Value: RadixSelect.Value, - Icon: RadixSelect.Icon, - Portal: RadixSelect.Portal, - Group: RadixSelect.Group, - ItemText: RadixSelect.ItemText, - ItemIndicator: RadixSelect.ItemIndicator, - Trigger, - Content, - Viewport, - Label, - Item, - Separator, -}; diff --git a/src/app/ui/components/skeleton-loader/skeleton-loader.stories.tsx b/src/app/ui/components/skeleton-loader/skeleton-loader.stories.tsx deleted file mode 100644 index 502aca1e7e5..00000000000 --- a/src/app/ui/components/skeleton-loader/skeleton-loader.stories.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Meta } from '@storybook/react'; - -import { SkeletonLoader as Component } from '@app/ui/components/skeleton-loader/skeleton-loader'; - -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'Layout/SkeletonLoader', -}; - -export default meta; - -export function SkeletonLoader() { - return ; -} diff --git a/src/app/ui/components/skeleton-loader/skeleton-loader.tsx b/src/app/ui/components/skeleton-loader/skeleton-loader.tsx deleted file mode 100644 index 268d72a7b31..00000000000 --- a/src/app/ui/components/skeleton-loader/skeleton-loader.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { Box } from 'leather-styles/jsx'; - -import { shimmerStyles } from '@app/ui/shared/shimmer-styles'; - -interface SkeletonLoaderProps { - isLoading: boolean; - children?: React.ReactNode; - width?: string; - height?: string; -} -export function SkeletonLoader({ - children, - width = '30px', - height = '30px', - isLoading, -}: SkeletonLoaderProps) { - if (isLoading) { - return ( - - ); - } - - return <>{children}; -} diff --git a/src/app/ui/components/spinner.tsx b/src/app/ui/components/spinner.tsx deleted file mode 100644 index aa627af0ac1..00000000000 --- a/src/app/ui/components/spinner.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { Square, SquareProps, VisuallyHidden } from 'leather-styles/jsx'; - -interface SpinnerProps extends SquareProps { - emptyColor?: string; - label?: string; - speed?: string; - thickness?: string; -} - -export function Spinner({ - emptyColor = 'transparent', - size = 'sm', - label = 'Loading...', - thickness = '2px', - speed = '0.85s', - color = 'ink.text-subdued', - ...props -}: SpinnerProps) { - return ( - - {label && {label}} - - ); -} diff --git a/src/app/ui/components/tag/tag-with-tooltip.tsx b/src/app/ui/components/tag/tag-with-tooltip.tsx index 24517a78e71..983d618746f 100644 --- a/src/app/ui/components/tag/tag-with-tooltip.tsx +++ b/src/app/ui/components/tag/tag-with-tooltip.tsx @@ -1,5 +1,6 @@ +import { Tag, type TagProps, type TagVariants } from '@leather-wallet/ui'; + import { BasicTooltip } from '../tooltip/basic-tooltip'; -import { Tag, type TagProps, type TagVariants } from './tag'; type TooltipSideType = 'bottom' | 'left' | 'right' | 'top'; diff --git a/src/app/ui/components/tag/tag.stories.tsx b/src/app/ui/components/tag/tag.stories.tsx deleted file mode 100644 index 0a4444facc5..00000000000 --- a/src/app/ui/components/tag/tag.stories.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; - -import { ErrorCircleIcon } from '@app/ui/icons'; - -import { Tag as Component } from './tag'; - -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'Tag', - parameters: { - controls: { include: ['transparent', 'variant'] }, - }, -}; - -export default meta; -type Story = StoryObj; - -export const Tag: Story = { - args: { - label: 'Label', - variant: 'default', - }, -}; - -export const WithIcon: Story = { - args: { - icon: , - label: 'Label', - variant: 'default', - }, -}; diff --git a/src/app/ui/components/tag/tag.tsx b/src/app/ui/components/tag/tag.tsx deleted file mode 100644 index 41c686574c5..00000000000 --- a/src/app/ui/components/tag/tag.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import type { ReactNode } from 'react'; - -import { type RecipeVariantProps, cva } from 'leather-styles/css'; -import { HStack, type HTMLStyledProps, styled } from 'leather-styles/jsx'; - -const tagRecipe = cva({ - base: { - borderRadius: 'xs', - fontWeight: 500, - maxWidth: 'fit-content', - maxHeight: 'fit-content', - p: 'space.01', - textStyle: 'label.03', - }, - variants: { - variant: { - default: { - bg: 'ink.background-secondary', - border: '1px solid {colors.ink.border-transparent}', - color: 'ink.text-subdued', - }, - error: { - bg: 'red.background-primary', - border: '1px solid {colors.red.border}', - color: 'red.action-primary-default', - }, - info: { - bg: 'blue.background-primary', - border: '1px solid {colors.blue.border}', - color: 'blue.action-primary-default', - }, - success: { - bg: 'green.background-primary', - border: '1px solid {colors.green.border}', - color: 'green.action-primary-default', - }, - warning: { - bg: 'yellow.background-primary', - border: '1px solid {colors.yellow.border}', - color: 'yellow.action-primary-default', - }, - }, - - transparent: { true: { bg: 'transparent' } }, - }, - defaultVariants: { - variant: 'default', - }, -}); - -export type TagVariants = RecipeVariantProps; - -export interface TagProps extends HTMLStyledProps<'div'> { - icon?: ReactNode; - label: string; -} -export function Tag({ icon, label, transparent, variant, ...props }: TagProps & TagVariants) { - return ( - - - {icon && icon} - {label} - - - ); -} diff --git a/src/app/ui/components/toast/toast.utils.tsx b/src/app/ui/components/toast/toast.utils.tsx index 6936725e968..17e0d849c1d 100644 --- a/src/app/ui/components/toast/toast.utils.tsx +++ b/src/app/ui/components/toast/toast.utils.tsx @@ -1,4 +1,4 @@ -import { CheckmarkCircleIcon, ErrorIcon, InfoCircleIcon } from '@app/ui/icons'; +import { CheckmarkCircleIcon, ErrorIcon, InfoCircleIcon } from '@leather-wallet/ui'; import type { ToastVariant } from './toast'; diff --git a/src/app/ui/components/tooltip/tooltip.stories.tsx b/src/app/ui/components/tooltip/tooltip.stories.tsx index bdb279e9f18..90448225200 100644 --- a/src/app/ui/components/tooltip/tooltip.stories.tsx +++ b/src/app/ui/components/tooltip/tooltip.stories.tsx @@ -2,7 +2,8 @@ import * as RadixTooltip from '@radix-ui/react-tooltip'; import type { Meta, StoryObj } from '@storybook/react'; import { Box } from 'leather-styles/jsx'; -import { InfoCircleIcon } from '../../icons/info-circle-icon'; +import { InfoCircleIcon } from '@leather-wallet/ui'; + import { BasicTooltip as Component } from './basic-tooltip'; const meta: Meta = { diff --git a/src/app/ui/components/typography/caption.tsx b/src/app/ui/components/typography/caption.tsx deleted file mode 100644 index 2598059242a..00000000000 --- a/src/app/ui/components/typography/caption.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { forwardRef } from 'react'; - -import { HTMLStyledProps, styled } from 'leather-styles/jsx'; - -export const Caption = forwardRef>( - ({ children, ...props }, ref) => ( - - {children} - - ) -); diff --git a/src/app/ui/components/typography/title.tsx b/src/app/ui/components/typography/title.tsx deleted file mode 100644 index b776bf3cd3a..00000000000 --- a/src/app/ui/components/typography/title.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { forwardRef } from 'react'; - -import { HTMLStyledProps, styled } from 'leather-styles/jsx'; - -export const Title = forwardRef>( - ({ children, ...props }, ref) => ( - - {children} - - ) -); diff --git a/src/app/ui/icons/arrow-down-icon.tsx b/src/app/ui/icons/arrow-down-icon.tsx deleted file mode 100644 index 465190c2763..00000000000 --- a/src/app/ui/icons/arrow-down-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ArrowDownIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/arrow-left-icon.tsx b/src/app/ui/icons/arrow-left-icon.tsx deleted file mode 100644 index 35371b1713b..00000000000 --- a/src/app/ui/icons/arrow-left-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ArrowLeftIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/arrow-up-icon.tsx b/src/app/ui/icons/arrow-up-icon.tsx deleted file mode 100644 index 87aedf9271b..00000000000 --- a/src/app/ui/icons/arrow-up-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ArrowUpIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/bitcoin-contract-icon.tsx b/src/app/ui/icons/bitcoin-contract-icon.tsx deleted file mode 100644 index 97a963b49ae..00000000000 --- a/src/app/ui/icons/bitcoin-contract-icon.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Icon, IconProps } from './icon/icon'; - -export function BitcoinContractIcon(props: IconProps) { - return ( - - - - - ); -} diff --git a/src/app/ui/icons/bitcoin-icon.tsx b/src/app/ui/icons/bitcoin-icon.tsx deleted file mode 100644 index 7a0e256c669..00000000000 --- a/src/app/ui/icons/bitcoin-icon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function BitcoinIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/checkmark-circle-icon.tsx b/src/app/ui/icons/checkmark-circle-icon.tsx deleted file mode 100644 index 330d12bbf19..00000000000 --- a/src/app/ui/icons/checkmark-circle-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function CheckmarkCircleIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/checkmark-icon.tsx b/src/app/ui/icons/checkmark-icon.tsx deleted file mode 100644 index 6f0b82b9abd..00000000000 --- a/src/app/ui/icons/checkmark-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function CheckmarkIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/chevron-down-icon.tsx b/src/app/ui/icons/chevron-down-icon.tsx deleted file mode 100644 index b0342be2da0..00000000000 --- a/src/app/ui/icons/chevron-down-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ChevronDownIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/chevron-up-icon.tsx b/src/app/ui/icons/chevron-up-icon.tsx deleted file mode 100644 index 25179c0fa3c..00000000000 --- a/src/app/ui/icons/chevron-up-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ChevronUpIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/chevrons-right-icon.tsx b/src/app/ui/icons/chevrons-right-icon.tsx deleted file mode 100644 index fb3419200e6..00000000000 --- a/src/app/ui/icons/chevrons-right-icon.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ChevronsRightIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/circle-icon.tsx b/src/app/ui/icons/circle-icon.tsx deleted file mode 100644 index 704adddab4d..00000000000 --- a/src/app/ui/icons/circle-icon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function CircleIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/close-icon.tsx b/src/app/ui/icons/close-icon.tsx deleted file mode 100644 index 4b23f9407f9..00000000000 --- a/src/app/ui/icons/close-icon.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function CloseIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/cloud-off-icon.tsx b/src/app/ui/icons/cloud-off-icon.tsx deleted file mode 100644 index 5d162933da9..00000000000 --- a/src/app/ui/icons/cloud-off-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function CloudOffIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/code-icon.tsx b/src/app/ui/icons/code-icon.tsx deleted file mode 100644 index 88367fce155..00000000000 --- a/src/app/ui/icons/code-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function CodeIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/copy-icon.tsx b/src/app/ui/icons/copy-icon.tsx deleted file mode 100644 index 0b416dfb90f..00000000000 --- a/src/app/ui/icons/copy-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function CopyIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/credit-card-icon.tsx b/src/app/ui/icons/credit-card-icon.tsx deleted file mode 100644 index aab9b722d4a..00000000000 --- a/src/app/ui/icons/credit-card-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function CreditCardIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/docs/icons-list.ts b/src/app/ui/icons/docs/icons-list.ts deleted file mode 100644 index e3bdb0adda7..00000000000 --- a/src/app/ui/icons/docs/icons-list.ts +++ /dev/null @@ -1,12 +0,0 @@ -import * as Icons from '..'; - -function getIconsListForGallery() { - const icons: string[] = []; - Object.values(Icons).forEach(component => { - icons.push(component.name); - }); - return icons; -} - -const iconsList = getIconsListForGallery(); -export { iconsList }; diff --git a/src/app/ui/icons/docs/icons.mdx b/src/app/ui/icons/docs/icons.mdx deleted file mode 100644 index 0cf54de7f4b..00000000000 --- a/src/app/ui/icons/docs/icons.mdx +++ /dev/null @@ -1,50 +0,0 @@ -import { IconGallery, IconItem, Meta } from '@storybook/blocks'; - -import * as Icon from '..'; -import { iconsList } from './icons-list'; - - - - - -
- -# Icons - -
- -
-

Default 24x24

- - {iconsList.map(item => { - const IconComponent = Icon[item]; - return ( - - - - ); - })} - -
- -
- -
-

Small 16x16

- - {iconsList.map(item => { - const IconComponent = Icon[item]; - return ( - - - - ); - })} - -
diff --git a/src/app/ui/icons/download-icon.tsx b/src/app/ui/icons/download-icon.tsx deleted file mode 100644 index 261dc111813..00000000000 --- a/src/app/ui/icons/download-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function DownloadIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/edit-icon.tsx b/src/app/ui/icons/edit-icon.tsx deleted file mode 100644 index 0fc0e8c262c..00000000000 --- a/src/app/ui/icons/edit-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function EditIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/error-circle-icon.tsx b/src/app/ui/icons/error-circle-icon.tsx deleted file mode 100644 index adf2afe9be7..00000000000 --- a/src/app/ui/icons/error-circle-icon.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ErrorCircleIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - - ); - - return ( - - - - - ); -} diff --git a/src/app/ui/icons/error-icon.tsx b/src/app/ui/icons/error-icon.tsx deleted file mode 100644 index b541d67fe40..00000000000 --- a/src/app/ui/icons/error-icon.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ErrorIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - - ); - - return ( - - - - - ); -} diff --git a/src/app/ui/icons/exit-icon.tsx b/src/app/ui/icons/exit-icon.tsx deleted file mode 100644 index 9a0cd78af27..00000000000 --- a/src/app/ui/icons/exit-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ExitIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/expand-icon.tsx b/src/app/ui/icons/expand-icon.tsx deleted file mode 100644 index eac407f0560..00000000000 --- a/src/app/ui/icons/expand-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ExpandIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/external-link-icon.tsx b/src/app/ui/icons/external-link-icon.tsx deleted file mode 100644 index 2186a7ab6f6..00000000000 --- a/src/app/ui/icons/external-link-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ExternalLinkIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/eye-icon.tsx b/src/app/ui/icons/eye-icon.tsx deleted file mode 100644 index 824c80ac886..00000000000 --- a/src/app/ui/icons/eye-icon.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function EyeIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - - ); -} diff --git a/src/app/ui/icons/eye-slash-icon.tsx b/src/app/ui/icons/eye-slash-icon.tsx deleted file mode 100644 index 766e451343c..00000000000 --- a/src/app/ui/icons/eye-slash-icon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function EyeSlashIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/function-icon.tsx b/src/app/ui/icons/function-icon.tsx deleted file mode 100644 index 2e926669b75..00000000000 --- a/src/app/ui/icons/function-icon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function FunctionIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/hamburger-icon.tsx b/src/app/ui/icons/hamburger-icon.tsx deleted file mode 100644 index 91cd88dba34..00000000000 --- a/src/app/ui/icons/hamburger-icon.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function HamburgerIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/headset-icon.tsx b/src/app/ui/icons/headset-icon.tsx deleted file mode 100644 index e21e4b5b7ef..00000000000 --- a/src/app/ui/icons/headset-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function HeadsetIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/icon/icon.stories.tsx b/src/app/ui/icons/icon/icon.stories.tsx deleted file mode 100644 index c217886ce0a..00000000000 --- a/src/app/ui/icons/icon/icon.stories.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; - -import { ArrowDownIcon as Icon } from '../arrow-down-icon'; - -const meta: Meta = { - component: Icon, - title: 'Icons/ExampleIcon', -}; - -export default meta; - -type Story = StoryObj; - -export const ExampleIcon: Story = { - parameters: { - controls: { include: ['variant'] }, - }, - args: { width: 'default' }, -}; diff --git a/src/app/ui/icons/icon/icon.tsx b/src/app/ui/icons/icon/icon.tsx deleted file mode 100644 index 71689d92890..00000000000 --- a/src/app/ui/icons/icon/icon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { styled } from 'leather-styles/jsx'; -import type { HTMLStyledProps } from 'leather-styles/types'; - -type IconVariant = 'default' | 'small'; - -export interface IconProps extends HTMLStyledProps<'svg'> { - variant?: IconVariant; -} -export function Icon({ children, opacity = '1', ...props }: IconProps) { - return ( - - {children} - - ); -} - -export function IconSmall({ children, opacity = '1', ...props }: IconProps) { - return ( - - {children} - - ); -} diff --git a/src/app/ui/icons/inbox-icon.tsx b/src/app/ui/icons/inbox-icon.tsx deleted file mode 100644 index 4648a508ac3..00000000000 --- a/src/app/ui/icons/inbox-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function InboxIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/index.ts b/src/app/ui/icons/index.ts deleted file mode 100644 index 4c0ecb53492..00000000000 --- a/src/app/ui/icons/index.ts +++ /dev/null @@ -1,53 +0,0 @@ -export * from './arrow-down-icon'; -export * from './arrow-left-icon'; -export * from './arrow-up-icon'; -export * from './bitcoin-icon'; -export * from './bitcoin-contract-icon'; -export * from './checkmark-circle-icon'; -export * from './checkmark-icon'; -export * from './chevron-down-icon'; -export * from './chevron-up-icon'; -export * from './chevrons-right-icon'; -export * from './circle-icon'; -export * from './close-icon'; -export * from './cloud-off-icon'; -export * from './code-icon'; -export * from './copy-icon'; -export * from './credit-card-icon'; -export * from './download-icon'; -export * from './edit-icon'; -export * from './error-circle-icon'; -export * from './error-icon'; -export * from './exit-icon'; -export * from './expand-icon'; -export * from './external-link-icon'; -export * from './eye-icon'; -export * from './eye-slash-icon'; -export * from './function-icon'; -export * from './hamburger-icon'; -export * from './headset-icon'; -export * from './inbox-icon'; -export * from './info-circle-icon'; -export * from './key-icon'; -export * from './lettermark-icon'; -export * from './ledger-icon'; -export * from './list-icon'; -export * from './lock-icon'; -export * from './megaphone-icon'; -export * from './moon-icon'; -export * from './placeholder-icon'; -export * from './plus-icon'; -export * from './qr-code-icon'; -export * from './question-circle-icon'; -export * from './reload-icon'; -export * from './send-icon'; -export * from './stacks-icon'; -export * from './star-icon'; -export * from './sun-icon'; -export * from './sun-in-cloud-icon'; -export * from './support-icon'; -export * from './swap-icon'; -export * from './trash-icon'; -export * from './unlock-icon'; -export * from './world-icon'; -export * from './zap-icon'; diff --git a/src/app/ui/icons/info-circle-icon.tsx b/src/app/ui/icons/info-circle-icon.tsx deleted file mode 100644 index f246855b61e..00000000000 --- a/src/app/ui/icons/info-circle-icon.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function InfoCircleIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - - ); - - return ( - - - - - ); -} diff --git a/src/app/ui/icons/key-icon.tsx b/src/app/ui/icons/key-icon.tsx deleted file mode 100644 index 89f3f7b3128..00000000000 --- a/src/app/ui/icons/key-icon.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function KeyIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - - ); - - return ( - - - - - ); -} diff --git a/src/app/ui/icons/ledger-icon.tsx b/src/app/ui/icons/ledger-icon.tsx deleted file mode 100644 index e63fd272c9f..00000000000 --- a/src/app/ui/icons/ledger-icon.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function LedgerIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - - - - - ); -} diff --git a/src/app/ui/icons/lettermark-icon.tsx b/src/app/ui/icons/lettermark-icon.tsx deleted file mode 100644 index 7da877d938a..00000000000 --- a/src/app/ui/icons/lettermark-icon.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { Icon, IconProps } from './icon/icon'; - -export function LettermarkIcon(props: IconProps) { - return ( - - - - ); -} diff --git a/src/app/ui/icons/list-icon.tsx b/src/app/ui/icons/list-icon.tsx deleted file mode 100644 index fa5275c65f4..00000000000 --- a/src/app/ui/icons/list-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ListIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/lock-icon.tsx b/src/app/ui/icons/lock-icon.tsx deleted file mode 100644 index fc24662f0ad..00000000000 --- a/src/app/ui/icons/lock-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function LockIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/logomark-icon.tsx b/src/app/ui/icons/logomark-icon.tsx deleted file mode 100644 index 89f13152131..00000000000 --- a/src/app/ui/icons/logomark-icon.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { Icon, IconProps } from './icon/icon'; - -export function LogomarkIcon(props: IconProps) { - return ( - - - - ); -} diff --git a/src/app/ui/icons/megaphone-icon.tsx b/src/app/ui/icons/megaphone-icon.tsx deleted file mode 100644 index 237bc00e253..00000000000 --- a/src/app/ui/icons/megaphone-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function MegaphoneIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/moon-icon.tsx b/src/app/ui/icons/moon-icon.tsx deleted file mode 100644 index c3ceba8e5de..00000000000 --- a/src/app/ui/icons/moon-icon.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function MoonIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - - ); - - return ( - - - - - ); -} diff --git a/src/app/ui/icons/placeholder-icon.tsx b/src/app/ui/icons/placeholder-icon.tsx deleted file mode 100644 index 28ca50eec4a..00000000000 --- a/src/app/ui/icons/placeholder-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function PlaceholderIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/plus-icon.tsx b/src/app/ui/icons/plus-icon.tsx deleted file mode 100644 index 626ec117b5f..00000000000 --- a/src/app/ui/icons/plus-icon.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function PlusIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/qr-code-icon.tsx b/src/app/ui/icons/qr-code-icon.tsx deleted file mode 100644 index 9b97a317aad..00000000000 --- a/src/app/ui/icons/qr-code-icon.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function QrCodeIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - - - - - - - ); - - return ( - - - - - - - - ); -} diff --git a/src/app/ui/icons/question-circle-icon.tsx b/src/app/ui/icons/question-circle-icon.tsx deleted file mode 100644 index 89ba6619c60..00000000000 --- a/src/app/ui/icons/question-circle-icon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function QuestionCircleIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/refresh-icon.tsx b/src/app/ui/icons/refresh-icon.tsx deleted file mode 100644 index 479ed95039e..00000000000 --- a/src/app/ui/icons/refresh-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function RefreshIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/reload-icon.tsx b/src/app/ui/icons/reload-icon.tsx deleted file mode 100644 index 287ea1c3dda..00000000000 --- a/src/app/ui/icons/reload-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ReloadIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/send-icon.tsx b/src/app/ui/icons/send-icon.tsx deleted file mode 100644 index c8a82ffc3bf..00000000000 --- a/src/app/ui/icons/send-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function SendIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/stacks-icon.tsx b/src/app/ui/icons/stacks-icon.tsx deleted file mode 100644 index 7862874041b..00000000000 --- a/src/app/ui/icons/stacks-icon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function StacksIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/star-icon.tsx b/src/app/ui/icons/star-icon.tsx deleted file mode 100644 index bebbedebb62..00000000000 --- a/src/app/ui/icons/star-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function StarIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/sun-icon.tsx b/src/app/ui/icons/sun-icon.tsx deleted file mode 100644 index 599ceaa64ab..00000000000 --- a/src/app/ui/icons/sun-icon.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function SunIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - - - - - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/sun-in-cloud-icon.tsx b/src/app/ui/icons/sun-in-cloud-icon.tsx deleted file mode 100644 index 2cd674c915b..00000000000 --- a/src/app/ui/icons/sun-in-cloud-icon.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function SunInCloudIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - - - - - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/support-icon.tsx b/src/app/ui/icons/support-icon.tsx deleted file mode 100644 index b34e0773697..00000000000 --- a/src/app/ui/icons/support-icon.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function SupportIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/swap-icon.tsx b/src/app/ui/icons/swap-icon.tsx deleted file mode 100644 index 31644ba3671..00000000000 --- a/src/app/ui/icons/swap-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function SwapIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/trash-icon.tsx b/src/app/ui/icons/trash-icon.tsx deleted file mode 100644 index 0c8f874788f..00000000000 --- a/src/app/ui/icons/trash-icon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function TrashIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/unlock-icon.tsx b/src/app/ui/icons/unlock-icon.tsx deleted file mode 100644 index 9d705c23bb9..00000000000 --- a/src/app/ui/icons/unlock-icon.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function UnlockIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/world-icon.tsx b/src/app/ui/icons/world-icon.tsx deleted file mode 100644 index cf04e1443e2..00000000000 --- a/src/app/ui/icons/world-icon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function WorldIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/icons/zap-icon.tsx b/src/app/ui/icons/zap-icon.tsx deleted file mode 100644 index f2a92afe60c..00000000000 --- a/src/app/ui/icons/zap-icon.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { Icon, IconProps, IconSmall } from './icon/icon'; - -export function ZapIcon({ variant, ...props }: IconProps) { - if (variant === 'small') - return ( - - - - ); - - return ( - - - - ); -} diff --git a/src/app/ui/layout/card/card.stories.tsx b/src/app/ui/layout/card/card.stories.tsx index 026a1da1f56..0069f00e9ed 100644 --- a/src/app/ui/layout/card/card.stories.tsx +++ b/src/app/ui/layout/card/card.stories.tsx @@ -1,7 +1,7 @@ import type { Meta } from '@storybook/react'; import { Box } from 'leather-styles/jsx'; -import { Button } from '@app/ui/components/button/button'; +import { Button } from '@leather-wallet/ui'; import { Card as Component } from './card'; diff --git a/src/app/ui/pages/home.layout.stories.tsx b/src/app/ui/pages/home.layout.stories.tsx index 54922c8b769..6b7f3e17fca 100644 --- a/src/app/ui/pages/home.layout.stories.tsx +++ b/src/app/ui/pages/home.layout.stories.tsx @@ -1,11 +1,11 @@ import type { Meta } from '@storybook/react'; import { Box, Flex, Stack } from 'leather-styles/jsx'; +import { ArrowDownIcon, ArrowUpIcon, IconButton, PlusIcon, SwapIcon } from '@leather-wallet/ui'; + import { RouteUrls } from '@shared/route-urls'; -import { IconButton } from '@app/ui/components/icon-button/icon-button'; import { Tabs } from '@app/ui/components/tabs/tabs'; -import { ArrowDownIcon, ArrowUpIcon, PlusIcon, SwapIcon } from '@app/ui/icons'; import { HomeLayout as Component } from './home.layout'; diff --git a/src/app/ui/pages/welcome.layout.tsx b/src/app/ui/pages/welcome.layout.tsx index 6a2679569f0..747e896f7fa 100644 --- a/src/app/ui/pages/welcome.layout.tsx +++ b/src/app/ui/pages/welcome.layout.tsx @@ -1,11 +1,9 @@ import { OnboardingSelectors } from '@tests/selectors/onboarding.selectors'; import { Flex, styled } from 'leather-styles/jsx'; +import { Button, LettermarkIcon, Link, LogomarkIcon } from '@leather-wallet/ui'; + import { useThemeSwitcher } from '@app/common/theme-provider'; -import { Button } from '@app/ui/components/button/button'; -import { Link } from '@app/ui/components/link/link'; -import { LettermarkIcon } from '@app/ui/icons/lettermark-icon'; -import { LogomarkIcon } from '@app/ui/icons/logomark-icon'; interface WelcomeLayoutProps { isGeneratingWallet: boolean; diff --git a/src/app/ui/pressable/pressable.stories.tsx b/src/app/ui/pressable/pressable.stories.tsx deleted file mode 100644 index 5648364486c..00000000000 --- a/src/app/ui/pressable/pressable.stories.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; -import { styled } from 'leather-styles/jsx'; - -import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon'; -import { CopyIcon } from '@app/ui/icons/copy-icon'; -import { QrCodeIcon } from '@app/ui/icons/qr-code-icon'; -import { Pressable as Component } from '@app/ui/pressable/pressable'; - -import { Button } from '../components/button/button'; -import { ItemLayout } from '../components/item-layout/item-layout'; -import { ItemLayoutWithButtons } from '../components/item-layout/item-layout-with-buttons'; - -const meta: Meta = { - component: Component, - tags: ['autodocs'], - title: 'Pressable', - parameters: { - controls: { include: [] }, - }, -}; - -export default meta; -type Story = StoryObj; - -function ExamplePressableContent() { - return ( - } - titleLeft="Label" - captionLeft="Caption" - titleRight="1,000.00 ABC" - captionRight="$1,000.00" - /> - ); -} - -export const Pressable: Story = { - parameters: { - docs: { - description: { - story: - '`Pressable` has its hover state applied with a before pseudo element, so the content aligns independently from its hover state background.', - }, - }, - }, - args: { - onClick: () => {}, - children: , - }, -}; - -export const Disabled: Story = { - args: { - disabled: true, - onClick: () => {}, - children: ( - } - titleLeft="Label" - captionLeft="Caption" - titleRight="1,000.00 ABC" - captionRight="$1,000.00" - /> - ), - }, -}; - -export const WithButtons: Story = { - args: { - children: ( - } - title="Label" - caption="Caption" - buttons={ - <> - - - - } - /> - ), - }, -}; - -export const AlignmentExample: Story = { - parameters: { - docs: { - description: { - story: 'Demonstrates the component alignment in combination with its hover state', - }, - }, - }, - decorators: [ - Story => ( - - - Left aligned header - - - - ), - ], - args: { - onClick: () => {}, - children: , - }, -}; - -export const WithPadding: Story = { - parameters: { - docs: { - description: { - story: - "In some layouts, it's necessary to contain the bounds of the element's pseudo element hover background. Wrap the component in a div with padding `space.03` to achieve this", - }, - }, - }, - decorators: [ - Story => ( - - - - ), - ], - args: { - onClick: () => {}, - children: , - }, -}; diff --git a/src/app/ui/pressable/pressable.tsx b/src/app/ui/pressable/pressable.tsx deleted file mode 100644 index 984f9fe313b..00000000000 --- a/src/app/ui/pressable/pressable.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import { forwardRef } from 'react'; - -import { type RecipeVariantProps, css, cva } from 'leather-styles/css'; -import { type HTMLStyledProps, styled } from 'leather-styles/jsx'; - -import { isDefined } from '@leather-wallet/utils'; - -const basePseudoOutlineProps = { - content: '""', - rounded: 'xs', - position: 'absolute', - top: '-space.03', - left: '-space.03', - bottom: '-space.03', - right: '-space.03', -}; - -const focusVisibleStyles = { - _before: { - ...basePseudoOutlineProps, - border: '2px solid', - borderColor: 'lightModeBlue.500', - }, - _focusWithin: { outline: 'none' }, -}; - -export const pressableBaseStyles = css.raw({ - position: 'relative', - bg: 'ink.background-primary', - color: 'ink.text-primary', - cursor: 'default', - display: 'flex', - height: 'auto', - outline: 'none', - rounded: 'xs', - userSelect: 'none', - width: '100%', -}); - -export const pressableStyles = css.raw({ - cursor: 'pointer', - position: 'relative', - _before: basePseudoOutlineProps, - - '&:is(:active)': { - _before: { - bg: 'ink.component-background-pressed', - }, - }, - '&:is(:focus-visible)': { - ...focusVisibleStyles, - }, - '&:is(:disabled, [data-disabled])': { - _active: { bg: 'unset' }, - _focus: { border: 'unset' }, - _hover: { bg: 'unset' }, - color: 'ink.text-non-interactive', - cursor: 'not-allowed', - }, - - '&:is(:hover, [data-highlighted])': { - _before: { - bg: 'ink.component-background-hover', - borderColor: 'transparent', - }, - }, -}); - -const pressableRecipe = cva({ - base: pressableBaseStyles, - variants: { - disabled: { true: {} }, - pressable: { - true: pressableStyles, - }, - }, -}); - -export const pressableCaptionStyles = css({ - _groupDisabled: { color: 'ink.text-non-interactive' }, - color: 'ink.text-subdued', -}); - -export const pressableChevronStyles = css({ - _groupDisabled: { color: 'ink.text-non-interactive' }, - color: 'ink.action-primary-default', -}); - -type PressableVariantProps = RecipeVariantProps; - -export const Pressable = forwardRef< - HTMLButtonElement, - HTMLStyledProps<'button'> & PressableVariantProps ->((props, ref) => { - const { disabled, onClick, ...rest } = props; - const isPressable = isDefined(onClick); - return ( - - ); -}); diff --git a/src/app/ui/shared/shimmer-styles.ts b/src/app/ui/shared/shimmer-styles.ts deleted file mode 100644 index f89a620d385..00000000000 --- a/src/app/ui/shared/shimmer-styles.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { css } from 'leather-styles/css'; - -export const shimmerStyles = css({ - '&[data-state=loading]': { - display: 'inline-block', - WebkitMask: 'linear-gradient(-60deg, #000 30%, #0005, #000 70%) right/300% 100%', - backgroundRepeat: 'no-repeat', - animation: 'shimmer 1.5s infinite', - color: 'ink.text-subdued', - }, -}); diff --git a/src/app/ui/utils/style-context.tsx b/src/app/ui/utils/style-context.tsx deleted file mode 100644 index 8cba84f2665..00000000000 --- a/src/app/ui/utils/style-context.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { - ComponentProps, - ElementType, - JSX, - createContext, - createElement, - forwardRef, - useContext, -} from 'react'; - -// Copied from Panda docs. This logic is needed when composing together sva -// components, so they can share style state between slots. -// https://panda-css.com/docs/concepts/slot-recipes#styling-jsx-compound-components -type GenericProps = Record; -interface StyleRecipe { - (props?: GenericProps): Record; - splitVariantProps(props: GenericProps): any; -} -type StyleSlot = keyof ReturnType; -type StyleSlotRecipe = Record, string>; -type StyleVariantProps = Parameters[0]; -type CombineProps = Omit & U; - -const cx = (...args: (string | undefined)[]) => args.filter(Boolean).join(' '); - -interface ComponentVariants { - (props: CombineProps, StyleVariantProps>): JSX.Element; -} - -export const createStyleContext = (recipe: R) => { - const StyleContext = createContext | null>(null); - - const withProvider = ( - Component: T, - slot?: StyleSlot - ): ComponentVariants => { - const StyledComponent = forwardRef((props: ComponentProps, ref) => { - const [variantProps, otherProps] = recipe.splitVariantProps(props); - const slotStyles = recipe(variantProps) as StyleSlotRecipe; - return ( - - - - ); - }); - return StyledComponent as unknown as ComponentVariants; - }; - - const withContext = (Component: T, slot?: StyleSlot): T => { - if (!slot) return Component; - const StyledComponent = forwardRef((props: ComponentProps, ref) => { - const slotStyles = useContext(StyleContext); - return createElement(Component, { - ...props, - className: cx(slotStyles?.[slot ?? ''], props.className), - ref, - }); - }); - return StyledComponent as unknown as T; - }; - - return { - withProvider, - withContext, - }; -}; diff --git a/webpack/webpack.config.base.js b/webpack/webpack.config.base.js index 62803dfb1cf..bb1edab69a1 100755 --- a/webpack/webpack.config.base.js +++ b/webpack/webpack.config.base.js @@ -86,6 +86,8 @@ const aliases = { '@stacks/transactions': '@stacks/transactions/dist/esm', '@stacks/wallet-sdk': '@stacks/wallet-sdk/dist/esm', 'leather-styles': path.resolve('leather-styles'), + 'react': path.resolve('./node_modules/react'), + 'react-dom': path.resolve('./node_modules/react-dom') }; export const config = { @@ -161,6 +163,12 @@ export const config = { loader: 'esbuild-loader', options: { tsconfig: './tsconfig.json', target: 'es2020' }, }, + { + test: /\.(js)$/, + include: [/node_modules\/@leather-wallet\/ui/], + loader: 'esbuild-loader', + options: { tsconfig: './tsconfig.json', loader: 'jsx',target: 'es2020' }, + }, { test: /\.mdx?$/, use: [ From b03d6afa5ee1054ab7fc9dba38e746fc0a5d95fc Mon Sep 17 00:00:00 2001 From: Pete Watters <2938440+pete-watters@users.noreply.github.com> Date: Tue, 18 Jun 2024 13:38:30 +0100 Subject: [PATCH 06/26] fix: roll back import of dropdown menu, ref leather-wallet/issues#64 --- package.json | 1 + pnpm-lock.yaml | 35 ++--- src/app/features/settings/settings.tsx | 2 +- .../dropdown-menu-item.layout.tsx | 16 +++ .../dropdown-menu/dropdown-menu.stories.tsx | 47 +++++++ .../dropdown-menu/dropdown-menu.tsx | 127 ++++++++++++++++++ 6 files changed, 211 insertions(+), 17 deletions(-) create mode 100644 src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx create mode 100644 src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx create mode 100644 src/app/ui/components/dropdown-menu/dropdown-menu.tsx diff --git a/package.json b/package.json index 5e5d80f4450..8bcbf82b9f7 100644 --- a/package.json +++ b/package.json @@ -149,6 +149,7 @@ "@radix-ui/colors": "3.0.0", "@radix-ui/react-avatar": "1.0.4", "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-dropdown-menu": "2.0.6", "@radix-ui/react-tabs": "1.0.4", "@radix-ui/react-toast": "1.1.5", "@radix-ui/react-tooltip": "1.0.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1de8b9b07a0..0c42fb18b51 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,9 @@ importers: '@radix-ui/react-dialog': specifier: 1.0.5 version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dropdown-menu': + specifier: 2.0.6 + version: 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tabs': specifier: 1.0.4 version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -18445,7 +18448,7 @@ snapshots: '@radix-ui/react-alert-dialog@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -18480,7 +18483,7 @@ snapshots: '@radix-ui/react-aspect-ratio@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -18516,7 +18519,7 @@ snapshots: '@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -18590,7 +18593,7 @@ snapshots: '@radix-ui/react-context-menu@2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -18707,7 +18710,7 @@ snapshots: '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.2.0) @@ -18723,7 +18726,7 @@ snapshots: '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -18777,7 +18780,7 @@ snapshots: '@radix-ui/react-form@0.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -18792,7 +18795,7 @@ snapshots: '@radix-ui/react-hover-card@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -18836,7 +18839,7 @@ snapshots: '@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.2.0) @@ -18863,7 +18866,7 @@ snapshots: '@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -18890,7 +18893,7 @@ snapshots: '@radix-ui/react-popover@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -19014,7 +19017,7 @@ snapshots: '@radix-ui/react-radio-group@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -19069,7 +19072,7 @@ snapshots: '@radix-ui/react-scroll-area@1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -19147,7 +19150,7 @@ snapshots: '@radix-ui/react-separator@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -19157,7 +19160,7 @@ snapshots: '@radix-ui/react-slider@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -19193,7 +19196,7 @@ snapshots: '@radix-ui/react-switch@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) diff --git a/src/app/features/settings/settings.tsx b/src/app/features/settings/settings.tsx index 55855a7ef1f..42e38b48180 100644 --- a/src/app/features/settings/settings.tsx +++ b/src/app/features/settings/settings.tsx @@ -7,7 +7,6 @@ import { Flex, Stack, styled } from 'leather-styles/jsx'; import { Caption, - DropdownMenu, ExitIcon, ExpandIcon, ExternalLinkIcon, @@ -36,6 +35,7 @@ import { ThemeDialog } from '@app/features/settings/theme/theme-dialog'; import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; import { useHasLedgerKeys, useLedgerDeviceTargetId } from '@app/store/ledger/ledger.selectors'; import { useCurrentNetworkId } from '@app/store/networks/networks.selectors'; +import { DropdownMenu } from '@app/ui/components/dropdown-menu/dropdown-menu'; import { openFeedbackDialog } from '../feedback-button/feedback-button'; import { extractDeviceNameFromKnownTargetIds } from '../ledger/utils/generic-ledger-utils'; diff --git a/src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx b/src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx new file mode 100644 index 00000000000..183e6275f65 --- /dev/null +++ b/src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx @@ -0,0 +1,16 @@ +import { ReactNode } from 'react'; + +import { Flex } from 'leather-styles/jsx'; + +interface DropdownMenuItemLayoutProps { + contentLeft: ReactNode; + contentRight?: ReactNode; +} +export function DropdownMenuItemLayout({ contentLeft, contentRight }: DropdownMenuItemLayoutProps) { + return ( + + {contentLeft} + {contentRight} + + ); +} diff --git a/src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx b/src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx new file mode 100644 index 00000000000..57fbf6bef4e --- /dev/null +++ b/src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx @@ -0,0 +1,47 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { HStack, styled } from 'leather-styles/jsx'; + +import { PlaceholderIcon } from '@leather-wallet/ui'; + +import { DropdownMenu as Component, DropdownMenuItem } from './dropdown-menu'; +import { DropdownMenuItemLayout } from './dropdown-menu-item.layout'; + +const items: DropdownMenuItem[] = [{ label: 'Label 1' }, { label: 'Label 2' }]; + +const meta: Meta = { + component: Component.Root, + tags: ['autodocs'], + title: 'DropdownMenu', +}; + +export default meta; +type Story = StoryObj; + +export const DropdownMenu: Story = { + render: () => ( + + + Button + + + + + Label + {items.map(item => ( + + + + {item.label} + + } + /> + + ))} + + + + + ), +}; diff --git a/src/app/ui/components/dropdown-menu/dropdown-menu.tsx b/src/app/ui/components/dropdown-menu/dropdown-menu.tsx new file mode 100644 index 00000000000..56d3d97552f --- /dev/null +++ b/src/app/ui/components/dropdown-menu/dropdown-menu.tsx @@ -0,0 +1,127 @@ +import { ReactNode, forwardRef } from 'react'; + +import * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'; +import { css } from 'leather-styles/css'; +import { type HTMLStyledProps, styled } from 'leather-styles/jsx'; + +import { ChevronDownIcon, Flag, pressableBaseStyles, pressableStyles } from '@leather-wallet/ui'; + +export interface DropdownMenuItem { + iconLeft?: ReactNode; + iconRight?: ReactNode; + label: string; +} +const dropdownButtonStyles = css({ + bg: 'ink.background-primary', + borderRadius: 'xs', + fontWeight: 500, + maxWidth: 'fit-content', + maxHeight: 'fit-content', + px: 'space.04', + py: 'space.03', + textStyle: 'label.02', + userSelect: 'none', + '[data-state=open] &': { bg: 'ink.component-background-pressed' }, +}); + +function Button({ children, ...props }: HTMLStyledProps<'div'>) { + return ( + + }> + {children} + + + ); +} + +const dropdownIconButtonStyles = css({ + _hover: { bg: 'ink.component-background-hover' }, + _focus: { outline: 'none' }, + p: 'space.02', + + '&[data-state=open]': { bg: 'ink.component-background-pressed' }, +}); +const IconButton: typeof RadixDropdownMenu.Trigger = forwardRef((props, ref) => ( + +)); + +const dropdownTriggerStyles = css({ + _focus: { outline: 'none' }, +}); + +const Trigger: typeof RadixDropdownMenu.Trigger = forwardRef((props, ref) => ( + +)); + +const dropdownContentStyles = css({ + alignItems: 'center', + '--base-menu-padding': '0px', + bg: 'ink.background-primary', + borderRadius: 'xs', + boxShadow: + '0px 12px 24px 0px rgba(18, 16, 15, 0.08), 0px 4px 8px 0px rgba(18, 16, 15, 0.08), 0px 0px 2px 0px rgba(18, 16, 15, 0.08)', + p: '0', + willChange: 'transform, opacity', + zIndex: 999, + // _closed: { animation: 'slideDownAndOut 140ms ease-in-out' }, + // _open: { animation: 'slideUpAndFade 140ms ease-in-out' }, +}); +const Content: typeof RadixDropdownMenu.Content = forwardRef(({ className, ...props }, ref) => ( + +)); + +const dropdownMenuLabelStyles = css({ + color: 'ink.text-subdued', + height: 'auto', + px: 'space.03', + py: 'space.02', + textStyle: 'body.02', + width: '100%', +}); +const Label: typeof RadixDropdownMenu.Label = forwardRef((props, ref) => ( + +)); + +const dropdownItemStyles = css({ p: 'space.03' }); +const Item: typeof RadixDropdownMenu.Item = forwardRef((props, ref) => ( + + + +)); + +const dropdownMenuSeparatorStyles = css({ + bg: 'ink.background-primary', + color: 'ink.border-default', + mx: '0px', + my: 'space.03', +}); +const Separator: typeof RadixDropdownMenu.Separator = forwardRef((props, ref) => ( + +)); +const dropdownMenuGroupStyles = css({ + p: 'space.02', +}); +const Group: typeof RadixDropdownMenu.Group = forwardRef((props, ref) => ( + +)); + +export const DropdownMenu = { + Root: RadixDropdownMenu.Root, + Group, + Portal: RadixDropdownMenu.Portal, + Trigger, + Button, + IconButton, + Content, + Label, + Item, + Separator, +}; From 0af3ae9e25473c66e3fe62979716babae74e70ff Mon Sep 17 00:00:00 2001 From: Anastasios Date: Wed, 19 Jun 2024 10:56:58 +0400 Subject: [PATCH 07/26] fix: stx send form high fee warning, closes #5362 --- .../stacks-high-fee-dialog.tsx} | 52 ++++++++----------- .../stacks-high-fee-warning-container.tsx | 51 ++++++++++++++++++ .../stacks-transaction-signer.tsx | 15 ++---- .../submit-action.tsx | 23 ++++---- .../rpc-sign-stacks-transaction.tsx | 19 ++++--- .../stacks/use-stacks-common-send-form.tsx | 17 +++--- .../form/btc/btc-send-form.tsx | 3 -- .../form/sip10/use-sip10-send-form.tsx | 2 +- .../form/stacks/stacks-common-send-form.tsx | 19 ++----- .../form/stx/stx-send-form.tsx | 8 +-- .../form/stx/use-stx-send-form.tsx | 8 +-- .../send-crypto-asset-form.routes.tsx | 19 ++++++- .../transaction-request.tsx | 19 +++---- src/app/routes/request-routes.tsx | 5 +- tests/selectors/send.selectors.ts | 4 ++ tests/specs/send/send-stx.spec.ts | 25 ++++++++- 16 files changed, 173 insertions(+), 116 deletions(-) rename src/app/features/{dialogs/high-fee-dialog/high-fee-dialog.tsx => stacks-high-fee-warning/stacks-high-fee-dialog.tsx} (53%) create mode 100644 src/app/features/stacks-high-fee-warning/stacks-high-fee-warning-container.tsx rename src/app/pages/send/send-crypto-asset-form/{form => family}/stacks/use-stacks-common-send-form.tsx (80%) diff --git a/src/app/features/dialogs/high-fee-dialog/high-fee-dialog.tsx b/src/app/features/stacks-high-fee-warning/stacks-high-fee-dialog.tsx similarity index 53% rename from src/app/features/dialogs/high-fee-dialog/high-fee-dialog.tsx rename to src/app/features/stacks-high-fee-warning/stacks-high-fee-dialog.tsx index 0741fa87fc9..47826cea76d 100644 --- a/src/app/features/dialogs/high-fee-dialog/high-fee-dialog.tsx +++ b/src/app/features/stacks-high-fee-warning/stacks-high-fee-dialog.tsx @@ -1,53 +1,46 @@ -import { useEffect, useState } from 'react'; - +import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; import { useFormikContext } from 'formik'; import { HStack, Stack } from 'leather-styles/jsx'; import { Button, Caption, ErrorIcon, Link, Title } from '@leather-wallet/ui'; -import { - BitcoinSendFormValues, - StacksSendFormValues, - StacksTransactionFormValues, -} from '@shared/models/form.model'; +import { StacksSendFormValues } from '@shared/models/form.model'; import { openInNewTab } from '@app/common/utils/open-in-new-tab'; import { Dialog } from '@app/ui/components/containers/dialog/dialog'; import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; +import { useStacksHighFeeWarningContext } from './stacks-high-fee-warning-container'; + interface HighFeeDialogProps { learnMoreUrl: string; - isShowing?: boolean; } +export function HighFeeDialog({ learnMoreUrl }: HighFeeDialogProps) { + const { handleSubmit, values } = useFormikContext(); + const { showHighFeeWarningDialog, setHasBypassedFeeWarning, setShowHighFeeWarningDialog } = + useStacksHighFeeWarningContext(); -export function HighFeeDialog({ learnMoreUrl, isShowing = false }: HighFeeDialogProps) { - const [isShowingHighFeeConfirmation, setIsShowingHighFeeConfirmation] = useState(isShowing); - - useEffect(() => { - return () => { - if (isShowingHighFeeConfirmation) setIsShowingHighFeeConfirmation(false); - }; - }, [isShowingHighFeeConfirmation, setIsShowingHighFeeConfirmation]); - - const { handleSubmit, values } = useFormikContext< - BitcoinSendFormValues | StacksSendFormValues | StacksTransactionFormValues - >(); return ( } - isShowing={isShowingHighFeeConfirmation} - onClose={() => setIsShowingHighFeeConfirmation(false)} + isShowing={showHighFeeWarningDialog} + onClose={() => setShowHighFeeWarningDialog(false)} footer={
+ -
@@ -62,9 +55,8 @@ export function HighFeeDialog({ learnMoreUrl, isShowing = false }: HighFeeDialog - This action cannot be undone and the fees won't be returned, even if the transaction - fails. - openInNewTab(learnMoreUrl)} size="sm"> + This action cannot be undone. The fees won't be returned, even if the transaction fails. + openInNewTab(learnMoreUrl)} size="sm" ml="space.01"> Learn more diff --git a/src/app/features/stacks-high-fee-warning/stacks-high-fee-warning-container.tsx b/src/app/features/stacks-high-fee-warning/stacks-high-fee-warning-container.tsx new file mode 100644 index 00000000000..4b656dc2020 --- /dev/null +++ b/src/app/features/stacks-high-fee-warning/stacks-high-fee-warning-container.tsx @@ -0,0 +1,51 @@ +import { createContext, useContext, useState } from 'react'; + +import BigNumber from 'bignumber.js'; +import type { FormikErrors } from 'formik'; + +import { HIGH_FEE_AMOUNT_STX } from '@leather-wallet/constants'; +import { isEmpty } from '@leather-wallet/utils'; + +import type { HasChildren } from '@app/common/has-children'; + +interface StacksHighFeeWarningContext { + showHighFeeWarningDialog: boolean; + setShowHighFeeWarningDialog(val: boolean): void; + hasBypassedFeeWarning: boolean; + setHasBypassedFeeWarning(val: boolean): void; + isHighFeeWithNoFormErrors(errors: FormikErrors, fee: number | string): boolean; +} + +const stacksHighFeeWarningContext = createContext(null); + +export function useStacksHighFeeWarningContext() { + const ctx = useContext(stacksHighFeeWarningContext); + if (!ctx) throw new Error(`stacksCommonSendFormContext must be used within a context`); + return ctx; +} + +const StacksHighFeeWarningProvider = stacksHighFeeWarningContext.Provider; + +export function StacksHighFeeWarningContainer({ children }: HasChildren) { + const [showHighFeeWarningDialog, setShowHighFeeWarningDialog] = useState(false); + const [hasBypassedFeeWarning, setHasBypassedFeeWarning] = useState(false); + + function isHighFeeWithNoFormErrors(errors: FormikErrors, fee: number | string) { + if (hasBypassedFeeWarning) return false; + return isEmpty(errors) && new BigNumber(fee).isGreaterThan(HIGH_FEE_AMOUNT_STX); + } + + return ( + + {children} + + ); +} diff --git a/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx b/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx index c0b02fe9740..c9f783a1507 100644 --- a/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx +++ b/src/app/features/stacks-transaction-request/stacks-transaction-signer.tsx @@ -1,4 +1,3 @@ -import { useState } from 'react'; import { Outlet, useLocation, useNavigate } from 'react-router-dom'; import { StacksTransaction } from '@stacks/transactions'; @@ -24,7 +23,6 @@ import { useOnMount } from '@app/common/hooks/use-on-mount'; import { stxFeeValidator } from '@app/common/validation/forms/fee-validators'; import { nonceValidator } from '@app/common/validation/nonce-validators'; import { NonceSetter } from '@app/components/nonce-setter'; -import { HighFeeDialog } from '@app/features/dialogs/high-fee-dialog/high-fee-dialog'; import { RequestingTabClosedWarningMessage } from '@app/features/errors/requesting-tab-closed-error-msg'; import { ContractCallDetails } from '@app/features/stacks-transaction-request/contract-call-details/contract-call-details'; import { ContractDeployDetails } from '@app/features/stacks-transaction-request/contract-deploy-details/contract-deploy-details'; @@ -36,9 +34,10 @@ import { TransactionError } from '@app/features/stacks-transaction-request/trans import { useCurrentStacksAccountAddress } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; import { useTransactionRequestState } from '@app/store/transactions/requests.hooks'; +import { HighFeeDialog } from '../stacks-high-fee-warning/stacks-high-fee-dialog'; import { FeeForm } from './fee-form'; import { MinimalErrorMessage } from './minimal-error-message'; -import { SubmitAction } from './submit-action'; +import { StacksTxSubmitAction } from './submit-action'; interface StacksTransactionSignerProps { stacksTransaction: StacksTransaction; @@ -55,7 +54,6 @@ export function StacksTransactionSigner({ onSignStacksTransaction, isMultisig, }: StacksTransactionSignerProps) { - const [isShowingHighFeeConfirmation, setIsShowingHighFeeConfirmation] = useState(false); const transactionRequest = useTransactionRequestState(); const { data: stxFees } = useCalculateStacksTxFees(stacksTransaction); @@ -136,13 +134,8 @@ export function StacksTransactionSigner({ )} - setIsShowingHighFeeConfirmation(true)} - /> - + + )} diff --git a/src/app/features/stacks-transaction-request/submit-action.tsx b/src/app/features/stacks-transaction-request/submit-action.tsx index aa560f1edf6..02be7125e57 100644 --- a/src/app/features/stacks-transaction-request/submit-action.tsx +++ b/src/app/features/stacks-transaction-request/submit-action.tsx @@ -1,33 +1,32 @@ import { TransactionRequestSelectors } from '@tests/selectors/requests.selectors'; import { useFormikContext } from 'formik'; -import { HIGH_FEE_AMOUNT_STX } from '@leather-wallet/constants'; import { Button } from '@leather-wallet/ui'; -import { isEmpty } from '@leather-wallet/utils'; import { StacksTransactionFormValues } from '@shared/models/form.model'; import { useTransactionError } from '@app/features/stacks-transaction-request/hooks/use-transaction-error'; -interface SubmitActionProps { - setIsShowingHighFeeConfirmation(): void; -} -export function SubmitAction({ setIsShowingHighFeeConfirmation }: SubmitActionProps) { +import { useStacksHighFeeWarningContext } from '../stacks-high-fee-warning/stacks-high-fee-warning-container'; + +export function StacksTxSubmitAction() { const { handleSubmit, values, validateForm, isSubmitting } = useFormikContext(); + const context = useStacksHighFeeWarningContext(); + const error = useTransactionError(); const isDisabled = !!error || Number(values.fee) < 0; - const onConfirmTransaction = async () => { - // Check for errors before showing the high fee confirmation + async function onConfirmTransaction() { const formErrors = await validateForm(); - if (isEmpty(formErrors) && Number(values.fee) > HIGH_FEE_AMOUNT_STX) { - return setIsShowingHighFeeConfirmation(); - } + + if (context.isHighFeeWithNoFormErrors(formErrors, values.fee)) + return context.setShowHighFeeWarningDialog(true); + handleSubmit(); - }; + } return ( - Some Header} - isShowing={isShowing} - onClose={() => setIsShowing(false)} - > -

Some Dialog

-
- - ); -} diff --git a/src/app/ui/components/containers/dialog/dialog.tsx b/src/app/ui/components/containers/dialog/dialog.tsx deleted file mode 100644 index b4a30b65a1a..00000000000 --- a/src/app/ui/components/containers/dialog/dialog.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import { JSXElementConstructor, ReactElement, ReactNode, cloneElement } from 'react'; - -import * as RadixDialog from '@radix-ui/react-dialog'; -import { css } from 'leather-styles/css'; -import { Box } from 'leather-styles/jsx'; -import { token } from 'leather-styles/tokens'; - -import { pxStringToNumber } from '@shared/utils/px-string-to-number'; - -export interface DialogProps { - isShowing: boolean; - onClose?(): void; -} -interface RadixDialogProps extends DialogProps { - children: ReactNode; - footer?: ReactNode; - header?: ReactElement>; - onGoBack?(): void; - wrapChildren?: boolean; -} - -function getHeightOffset(header: ReactNode, footer: ReactNode) { - const headerHeight = header ? pxStringToNumber(token('sizes.headerHeight')) : 0; - const footerHeight = footer ? pxStringToNumber(token('sizes.footerHeight')) : 0; - return headerHeight + footerHeight; -} - -function getContentMaxHeight(maxHeightOffset: number) { - const virtualHeight = window.innerWidth <= pxStringToNumber(token('sizes.popupWidth')) ? 100 : 70; - - return `calc(${virtualHeight}vh - ${maxHeightOffset}px)`; -} - -export function Dialog({ - children, - footer, - header, - onClose, - isShowing, - wrapChildren = true, -}: RadixDialogProps) { - if (!isShowing) return null; - - const maxHeightOffset = getHeightOffset(header, footer); - const contentMaxHeight = getContentMaxHeight(maxHeightOffset); - - return ( - - - - - {header && cloneElement(header, { onClose })} - - {wrapChildren ? ( - - {children} - - ) : ( - children - )} - {footer} - - - - - ); -} From 65131b02c4e19eb04fa7f6a00fb28bc187a44d09 Mon Sep 17 00:00:00 2001 From: Pete Watters <2938440+pete-watters@users.noreply.github.com> Date: Thu, 27 Jun 2024 14:50:44 +0100 Subject: [PATCH 20/26] fix: use DropDown menu from monorepo for Settings, ref leather-wallet/issues#102 --- package.json | 6 +- pnpm-lock.yaml | 163 +++++++++--------- .../edit-nonce-dialog/edit-nonce-dialog.tsx | 3 +- .../increase-btc-fee-dialog.tsx | 5 +- .../increase-stx-fee-dialog.tsx | 11 +- .../switch-account-dialog.tsx | 3 +- .../unsupported-browser.layout.tsx | 3 +- ...trieve-taproot-to-native-segwit.layout.tsx | 3 +- src/app/features/settings/network/network.tsx | 3 +- src/app/features/settings/settings.tsx | 2 +- .../stacks-high-fee-dialog.tsx | 3 +- .../components/receive-tokens.layout.tsx | 3 +- src/app/pages/receive/receive-dialog.tsx | 3 +- .../send-inscription-form.tsx | 3 +- .../send-inscription-review.tsx | 5 +- .../sent-inscription-summary.tsx | 5 +- .../dropdown-menu-item.layout.tsx | 16 -- .../dropdown-menu/dropdown-menu.stories.tsx | 47 ----- .../dropdown-menu/dropdown-menu.tsx | 127 -------------- 19 files changed, 116 insertions(+), 298 deletions(-) delete mode 100644 src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx delete mode 100644 src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx delete mode 100644 src/app/ui/components/dropdown-menu/dropdown-menu.tsx diff --git a/package.json b/package.json index c8220107583..a0523abf245 100644 --- a/package.json +++ b/package.json @@ -135,14 +135,14 @@ "@dlc-link/dlc-tools": "1.1.1", "@fungible-systems/zone-file": "2.0.0", "@hirosystems/token-metadata-api-client": "1.2.0", - "@leather.io/bitcoin": "0.8.0", + "@leather.io/bitcoin": "0.8.1", "@leather.io/constants": "0.8.0", "@leather.io/crypto": "1.0.2", "@leather.io/models": "0.10.0", - "@leather.io/query": "0.9.1", + "@leather.io/query": "0.9.2", "@leather.io/tokens": "0.6.0", "@leather.io/ui": "1.5.1", - "@leather.io/utils": "0.9.0", + "@leather.io/utils": "0.9.1", "@ledgerhq/hw-transport-webusb": "6.27.19", "@noble/hashes": "1.4.0", "@noble/secp256k1": "2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bdba9d16a61..cbcabae9753 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,8 +36,8 @@ importers: specifier: 1.2.0 version: 1.2.0(encoding@0.1.13) '@leather.io/bitcoin': - specifier: 0.8.0 - version: 0.8.0(encoding@0.1.13) + specifier: 0.8.1 + version: 0.8.1(encoding@0.1.13) '@leather.io/constants': specifier: 0.8.0 version: 0.8.0 @@ -48,8 +48,8 @@ importers: specifier: 0.10.0 version: 0.10.0 '@leather.io/query': - specifier: 0.9.1 - version: 0.9.1(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1) + specifier: 0.9.2 + version: 0.9.2(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1) '@leather.io/tokens': specifier: 0.6.0 version: 0.6.0 @@ -57,8 +57,8 @@ importers: specifier: 1.5.1 version: 1.5.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@swc/core@1.4.8)(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5) '@leather.io/utils': - specifier: 0.9.0 - version: 0.9.0 + specifier: 0.9.1 + version: 0.9.1 '@ledgerhq/hw-transport-webusb': specifier: 6.27.19 version: 6.27.19 @@ -85,7 +85,7 @@ importers: version: 2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@reduxjs/toolkit': specifier: 2.2.3 - version: 2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1) + version: 2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1) '@scure/base': specifier: 1.1.6 version: 1.1.6 @@ -313,7 +313,7 @@ importers: version: 2.0.12(react@18.3.1) react-redux: specifier: 9.1.0 - version: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) + version: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) react-router-dom: specifier: 6.23.1 version: 6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -401,10 +401,10 @@ importers: version: 0.5.13(@types/webpack@5.28.5(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)))(react-refresh@0.14.2)(type-fest@4.20.0)(webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.91.0))(webpack-hot-middleware@2.26.1)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) '@redux-devtools/cli': specifier: 4.0.0 - version: 4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0)) + version: 4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0)) '@redux-devtools/remote': specifier: 0.9.3 - version: 0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) + version: 0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) '@schemastore/web-manifest': specifier: 0.0.6 version: 0.0.6 @@ -2880,8 +2880,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@leather.io/bitcoin@0.8.0': - resolution: {integrity: sha512-Nrn3zCKa1qFgcBJjzaYJiyK6F1nN/yQarHmI9vaU4sJrlDwG4eq2mK8+hWWqPvkW3Fnt9yjn5VnMybsoVvkY8Q==} + '@leather.io/bitcoin@0.8.1': + resolution: {integrity: sha512-f7Su5azKbxmF2wbIq3OOeMAXb2QiP5Y7CUzWGhi8qbUDfKY0Fr35VgOD0kbwKLzbczJk+SyPUGXsZMt37TwqGQ==} '@leather.io/constants@0.8.0': resolution: {integrity: sha512-PmiFZG+MLqU6hi9Nr3wfb9SG57FMnV+4DCtDOr5SWB/7P1OR//qYDoaiSS9B4VwW4WRjdy32EmO/Om8z61WuMw==} @@ -2901,8 +2901,8 @@ packages: '@leather.io/prettier-config@0.5.0': resolution: {integrity: sha512-Pul+4MAyBKnQvqgcKJLbZl4DHnS4kCJzSuaYFW6cfHdre7BFn/iY6Er/Dvm9F8g7VMtkdYu68jEYxQ1Xc7A0KQ==} - '@leather.io/query@0.9.1': - resolution: {integrity: sha512-W3UCbnemmbTYEFjKrwn+5CGMmUYt0CMBLFto/7kQHVbdGQncNDZupH3L7a4DYOcKwEEuAVXmqTUfL6mJ1M0HTQ==} + '@leather.io/query@0.9.2': + resolution: {integrity: sha512-PSrLRl89rOU/LL2mXT6RI5SVytWDDQx2XDthDD6d/McwBhz2NNhRTBnKjnTTlEA1/gaHGqL+VZrOWr86HZ9Wzg==} peerDependencies: react: '*' @@ -2915,9 +2915,6 @@ packages: '@leather.io/ui@1.5.1': resolution: {integrity: sha512-xlSQuAPIEArpStEiIPj9uhWiyvk/ikboZnU2fMdmZh+KJHgcba/V557Z3nyHxjAiPOO1LPonyGa6yHgIaextUQ==} - '@leather.io/utils@0.9.0': - resolution: {integrity: sha512-/hTC/XuLc0YyVB8EUT/T/0an/82of0CUUhN0KcEUh3gBFN42kEsyutbpE1PSjLofNOAhuMbdSBnKO8m6G85X7w==} - '@leather.io/utils@0.9.1': resolution: {integrity: sha512-d1IgYl13u6hSm36GGUlRTvRlsOGtlPWuvXq1xlTR4eH8WWfTta4GcSRBiy6W06f7wHwspnI1+2ycnjgZjo7SvA==} @@ -3793,6 +3790,10 @@ packages: resolution: {integrity: sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==} engines: {node: '>=18'} + '@react-native/assets-registry@0.74.83': + resolution: {integrity: sha512-2vkLMVnp+YTZYTNSDIBZojSsjz8sl5PscP3j4GcV6idD8V978SZfwFlk8K0ti0BzRs11mzL0Pj17km597S/eTQ==} + engines: {node: '>=18'} + '@react-native/assets-registry@0.74.84': resolution: {integrity: sha512-dzUhwyaX04QosWZ8zyaaNB/WYZIdeDN1lcpfQbqiOhZJShRH+FLTDVONE/dqlMQrP+EO7lDqF0RrlIt9lnOCQQ==} engines: {node: '>=18'} @@ -12603,7 +12604,6 @@ packages: engines: {node: '>=18'} hasBin: true peerDependencies: - '@react-native/assets-registry': '*' '@types/react': ^18.2.6 react: 18.2.0 peerDependenciesMeta: @@ -17524,13 +17524,13 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@leather.io/bitcoin@0.8.0(encoding@0.1.13)': + '@leather.io/bitcoin@0.8.1(encoding@0.1.13)': dependencies: '@bitcoinerlab/secp256k1': 1.0.2 '@leather.io/constants': 0.8.0 '@leather.io/crypto': 1.0.2 '@leather.io/models': 0.10.0 - '@leather.io/utils': 0.9.0 + '@leather.io/utils': 0.9.1 '@noble/hashes': 1.4.0 '@noble/secp256k1': 2.1.0 '@scure/base': 1.1.6 @@ -17583,15 +17583,15 @@ snapshots: - '@vue/compiler-sfc' - supports-color - '@leather.io/query@0.9.1(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1)': + '@leather.io/query@0.9.2(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1)': dependencies: '@fungible-systems/zone-file': 2.0.0 '@hirosystems/token-metadata-api-client': 1.2.0(encoding@0.1.13) - '@leather.io/bitcoin': 0.8.0(encoding@0.1.13) + '@leather.io/bitcoin': 0.8.1(encoding@0.1.13) '@leather.io/constants': 0.8.0 '@leather.io/models': 0.10.0 '@leather.io/rpc': 2.0.0 - '@leather.io/utils': 0.9.0 + '@leather.io/utils': 0.9.1 '@noble/hashes': 1.4.0 '@scure/base': 1.1.6 '@scure/bip32': 1.4.0 @@ -17638,9 +17638,9 @@ snapshots: '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-native/assets-registry': 0.73.1 '@react-native/metro-config': 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) - '@rnx-kit/metro-config': 1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@rnx-kit/metro-config': 1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@rnx-kit/metro-resolver-symlinks': 0.1.35 - '@shopify/restyle': 2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@shopify/restyle': 2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@storybook/react': 7.6.15(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.5) expo: 51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) expo-asset: 10.0.6(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) @@ -17652,7 +17652,7 @@ snapshots: metro-resolver: 0.80.5 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) tsup: 8.1.0(@swc/core@1.4.8)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5) transitivePeerDependencies: - '@babel/core' @@ -17670,13 +17670,6 @@ snapshots: - typescript - utf-8-validate - '@leather.io/utils@0.9.0': - dependencies: - '@leather.io/constants': 0.8.0 - '@leather.io/models': 0.10.0 - '@leather.io/rpc': 2.0.0 - bignumber.js: 9.1.2 - '@leather.io/utils@0.9.1': dependencies: '@leather.io/constants': 0.8.0 @@ -19298,6 +19291,8 @@ snapshots: '@react-native/assets-registry@0.73.1': {} + '@react-native/assets-registry@0.74.83': {} + '@react-native/assets-registry@0.74.84': {} '@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.24.6(@babel/core@7.24.4))': @@ -19593,29 +19588,29 @@ snapshots: '@react-native/normalize-colors@0.74.83': {} - '@react-native/virtualized-lists@0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@react-native/virtualized-lists@0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) optionalDependencies: '@types/react': 18.3.3 - '@redux-devtools/app@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/app@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/chart-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) - '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) - '@redux-devtools/inspector-monitor-test-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@redux-devtools/inspector-monitor-trace-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) - '@redux-devtools/log-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) - '@redux-devtools/rtk-query-monitor': 5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@redux-devtools/slider-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/chart-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor-test-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/inspector-monitor-trace-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/log-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) + '@redux-devtools/rtk-query-monitor': 5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/slider-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) + '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) '@types/react': 18.3.3 '@types/styled-components': 5.1.34 d3-state-visualizer: 2.0.0 @@ -19628,7 +19623,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-icons: 4.12.0(react@18.3.1) react-is: 18.2.0 - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) + react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) redux: 4.2.1 redux-persist: 6.0.0(react@18.3.1)(redux@4.2.1) socketcluster-client: 17.2.2 @@ -19639,10 +19634,10 @@ snapshots: - react-native - utf-8-validate - '@redux-devtools/chart-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/chart-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/runtime': 7.23.9 - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 d3-state-visualizer: 2.0.0 @@ -19651,11 +19646,11 @@ snapshots: redux: 4.2.1 redux-devtools-themes: 1.0.0 - '@redux-devtools/cli@4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))': + '@redux-devtools/cli@4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))': dependencies: '@apollo/server': 4.10.0(encoding@0.1.13)(graphql@16.8.1) '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/app': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/app': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@types/react': 18.3.3 body-parser: 1.20.2 chalk: 5.3.0 @@ -19695,20 +19690,20 @@ snapshots: - tedious - utf-8-validate - '@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1)': + '@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1)': dependencies: '@babel/runtime': 7.23.9 '@redux-devtools/instrument': 2.2.0(redux@4.2.1) lodash: 4.17.21 react: 18.3.1 - react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) + react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) redux: 5.0.1 - '@redux-devtools/inspector-monitor-test-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/inspector-monitor-test-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@types/react': 18.3.3 '@types/styled-components': 5.1.34 @@ -19723,12 +19718,12 @@ snapshots: simple-diff: 1.7.2 styled-components: 5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1) - '@redux-devtools/inspector-monitor-trace-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/inspector-monitor-trace-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/code-frame': 8.0.0-alpha.5 '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) '@types/chrome': 0.0.254 '@types/react': 18.3.3 anser: 2.1.1 @@ -19740,7 +19735,7 @@ snapshots: redux-devtools-themes: 1.0.0 source-map: 0.5.7 - '@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1)': + '@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1)': dependencies: '@babel/runtime': 7.23.9 '@dnd-kit/core': 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -19748,7 +19743,7 @@ snapshots: '@dnd-kit/sortable': 8.0.0(@dnd-kit/core@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@dnd-kit/utilities': 3.2.2(react@18.3.1) '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@types/lodash': 4.14.202 '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -19777,10 +19772,10 @@ snapshots: lodash: 4.17.21 redux: 5.0.1 - '@redux-devtools/log-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/log-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/runtime': 7.23.9 - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@types/lodash.debounce': 4.0.9 '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -19790,11 +19785,11 @@ snapshots: redux: 4.2.1 redux-devtools-themes: 1.0.0 - '@redux-devtools/remote@0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': + '@redux-devtools/remote@0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': dependencies: '@babel/runtime': 7.24.4 '@redux-devtools/instrument': 2.2.0(redux@5.0.1) - '@redux-devtools/utils': 3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) + '@redux-devtools/utils': 3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) jsan: 3.1.14 querystring: 0.2.1 redux: 5.0.1 @@ -19806,13 +19801,13 @@ snapshots: - immutable - utf-8-validate - '@redux-devtools/rtk-query-monitor@5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/rtk-query-monitor@5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) + '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) '@types/lodash': 4.14.202 '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -19835,10 +19830,10 @@ snapshots: immutable: 4.3.6 jsan: 3.1.14 - '@redux-devtools/slider-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/slider-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -19875,10 +19870,10 @@ snapshots: transitivePeerDependencies: - react-dom - '@redux-devtools/utils@3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': + '@redux-devtools/utils@3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': dependencies: '@babel/runtime': 7.24.4 - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/serialize': 0.4.2(immutable@4.3.6) '@types/get-params': 0.1.2 get-params: 0.1.2 @@ -19888,7 +19883,7 @@ snapshots: nanoid: 3.3.4 redux: 5.0.1 - '@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)': + '@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)': dependencies: immer: 9.0.21 redux: 4.2.1 @@ -19896,9 +19891,9 @@ snapshots: reselect: 4.1.8 optionalDependencies: react: 18.3.1 - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) + react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) - '@reduxjs/toolkit@2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)': + '@reduxjs/toolkit@2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)': dependencies: immer: 10.0.4 redux: 5.0.1 @@ -19906,7 +19901,7 @@ snapshots: reselect: 5.1.0 optionalDependencies: react: 18.3.1 - react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) + react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) '@remix-run/router@1.16.1': {} @@ -19937,14 +19932,14 @@ snapshots: '@rnx-kit/console@1.1.0': {} - '@rnx-kit/metro-config@1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@rnx-kit/metro-config@1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: '@rnx-kit/console': 1.1.0 '@rnx-kit/tools-node': 2.1.1 '@rnx-kit/tools-react-native': 1.3.5 '@rnx-kit/tools-workspaces': 0.1.6 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) optionalDependencies: '@react-native/metro-config': 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) @@ -20231,10 +20226,10 @@ snapshots: - encoding - supports-color - '@shopify/restyle@2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@shopify/restyle@2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) '@sideway/address@4.1.5': dependencies: @@ -30909,19 +30904,19 @@ snapshots: lottie-web: 5.12.2 react: 18.3.1 - react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1): + react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native-community/cli': 13.6.6(encoding@0.1.13) '@react-native-community/cli-platform-android': 13.6.6(encoding@0.1.13) '@react-native-community/cli-platform-ios': 13.6.6(encoding@0.1.13) - '@react-native/assets-registry': 0.73.1 + '@react-native/assets-registry': 0.74.83 '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.6(@babel/core@7.24.4)) '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) '@react-native/gradle-plugin': 0.74.83 '@react-native/js-polyfills': 0.74.83 '@react-native/normalize-colors': 0.74.83 - '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -30965,7 +30960,7 @@ snapshots: qr.js: 0.0.0 react: 18.3.1 - react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1): + react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1): dependencies: '@babel/runtime': 7.23.9 '@types/hoist-non-react-statics': 3.3.5 @@ -30978,17 +30973,17 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react-dom: 18.3.1(react@18.3.1) - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) redux: 4.2.1 - react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1): + react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.3 react: 18.3.1 use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.3.3 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) redux: 5.0.1 react-refresh@0.14.2: {} diff --git a/src/app/features/dialogs/edit-nonce-dialog/edit-nonce-dialog.tsx b/src/app/features/dialogs/edit-nonce-dialog/edit-nonce-dialog.tsx index 7755f21e192..35389fa1f3d 100644 --- a/src/app/features/dialogs/edit-nonce-dialog/edit-nonce-dialog.tsx +++ b/src/app/features/dialogs/edit-nonce-dialog/edit-nonce-dialog.tsx @@ -1,10 +1,11 @@ import { useCallback, useState } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; -import { Dialog, Link } from '@leather.io/ui'; import { useFormikContext } from 'formik'; import { Stack, styled } from 'leather-styles/jsx'; +import { Dialog, Link } from '@leather.io/ui'; + import { StacksSendFormValues, StacksTransactionFormValues } from '@shared/models/form.model'; import { useOnMount } from '@app/common/hooks/use-on-mount'; diff --git a/src/app/features/dialogs/increase-fee-dialog/increase-btc-fee-dialog.tsx b/src/app/features/dialogs/increase-fee-dialog/increase-btc-fee-dialog.tsx index 99ab090b630..52a92904a6a 100644 --- a/src/app/features/dialogs/increase-fee-dialog/increase-btc-fee-dialog.tsx +++ b/src/app/features/dialogs/increase-fee-dialog/increase-btc-fee-dialog.tsx @@ -1,11 +1,12 @@ import { Suspense } from 'react'; import { Outlet, useLocation, useNavigate } from 'react-router-dom'; +import { Formik } from 'formik'; +import { Flex, Stack } from 'leather-styles/jsx'; + import type { BitcoinTx } from '@leather.io/models'; import { Caption, Dialog, Spinner } from '@leather.io/ui'; import { btcToSat, createMoney, formatMoney } from '@leather.io/utils'; -import { Formik } from 'formik'; -import { Flex, Stack } from 'leather-styles/jsx'; import { RouteUrls } from '@shared/route-urls'; diff --git a/src/app/features/dialogs/increase-fee-dialog/increase-stx-fee-dialog.tsx b/src/app/features/dialogs/increase-fee-dialog/increase-stx-fee-dialog.tsx index 2b98bb0dd12..216d4bb1c89 100644 --- a/src/app/features/dialogs/increase-fee-dialog/increase-stx-fee-dialog.tsx +++ b/src/app/features/dialogs/increase-fee-dialog/increase-stx-fee-dialog.tsx @@ -1,6 +1,12 @@ import { Suspense, useCallback, useEffect } from 'react'; import { Outlet, useLocation, useNavigate, useParams } from 'react-router-dom'; +import { type StacksTransaction } from '@stacks/transactions'; +import BigNumber from 'bignumber.js'; +import { Formik } from 'formik'; +import { Flex, Stack } from 'leather-styles/jsx'; +import * as yup from 'yup'; + import { useStacksRawTransaction, useStxAvailableUnlockedBalance, @@ -8,11 +14,6 @@ import { } from '@leather.io/query'; import { Caption, Dialog, Spinner } from '@leather.io/ui'; import { microStxToStx, stxToMicroStx } from '@leather.io/utils'; -import { type StacksTransaction } from '@stacks/transactions'; -import BigNumber from 'bignumber.js'; -import { Formik } from 'formik'; -import { Flex, Stack } from 'leather-styles/jsx'; -import * as yup from 'yup'; import { RouteUrls } from '@shared/route-urls'; diff --git a/src/app/features/dialogs/switch-account-dialog/switch-account-dialog.tsx b/src/app/features/dialogs/switch-account-dialog/switch-account-dialog.tsx index 0c370f420e6..4f1724f28e7 100644 --- a/src/app/features/dialogs/switch-account-dialog/switch-account-dialog.tsx +++ b/src/app/features/dialogs/switch-account-dialog/switch-account-dialog.tsx @@ -1,9 +1,10 @@ import { memo } from 'react'; import { Virtuoso } from 'react-virtuoso'; -import { Button, Dialog } from '@leather.io/ui'; import { Box } from 'leather-styles/jsx'; +import { Button, Dialog } from '@leather.io/ui'; + import { useCreateAccount } from '@app/common/hooks/account/use-create-account'; import { useWalletType } from '@app/common/use-wallet-type'; import { useCurrentAccountIndex } from '@app/store/accounts/account'; diff --git a/src/app/features/ledger/generic-steps/unsupported-browser/unsupported-browser.layout.tsx b/src/app/features/ledger/generic-steps/unsupported-browser/unsupported-browser.layout.tsx index 1816e2cd008..4486d86e91e 100644 --- a/src/app/features/ledger/generic-steps/unsupported-browser/unsupported-browser.layout.tsx +++ b/src/app/features/ledger/generic-steps/unsupported-browser/unsupported-browser.layout.tsx @@ -1,8 +1,9 @@ import { useNavigate } from 'react-router-dom'; -import { Dialog, Link } from '@leather.io/ui'; import { styled } from 'leather-styles/jsx'; +import { Dialog, Link } from '@leather.io/ui'; + import { UnsupportedBrowserImg } from '@app/features/ledger/illustrations/ledger-illu-unsupported-browser'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; diff --git a/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx b/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx index 72e7ec0a133..d72d6a97620 100644 --- a/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx +++ b/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx @@ -1,6 +1,7 @@ -import { BtcAvatarIcon, Button, Callout, Dialog } from '@leather.io/ui'; import { Flex, styled } from 'leather-styles/jsx'; +import { BtcAvatarIcon, Button, Callout, Dialog } from '@leather.io/ui'; + import { Footer } from '@app/ui/components/containers/footers/footer'; import { DialogHeader } from '@app/ui/components/containers/headers/dialog-header'; import { Card } from '@app/ui/layout/card/card'; diff --git a/src/app/features/settings/network/network.tsx b/src/app/features/settings/network/network.tsx index f9d70217279..a79ef308ab0 100644 --- a/src/app/features/settings/network/network.tsx +++ b/src/app/features/settings/network/network.tsx @@ -1,8 +1,9 @@ import { useNavigate } from 'react-router-dom'; +import { SettingsSelectors } from '@tests/selectors/settings.selectors'; + import { WalletDefaultNetworkConfigurationIds } from '@leather.io/models'; import { Button, Dialog } from '@leather.io/ui'; -import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; diff --git a/src/app/features/settings/settings.tsx b/src/app/features/settings/settings.tsx index dbfeadcf410..84f8a3e345b 100644 --- a/src/app/features/settings/settings.tsx +++ b/src/app/features/settings/settings.tsx @@ -7,6 +7,7 @@ import { Flex, Stack, styled } from 'leather-styles/jsx'; import { Caption, + DropdownMenu, ExitIcon, ExpandIcon, ExternalLinkIcon, @@ -35,7 +36,6 @@ import { ThemeDialog } from '@app/features/settings/theme/theme-dialog'; import { useCurrentStacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; import { useHasLedgerKeys, useLedgerDeviceTargetId } from '@app/store/ledger/ledger.selectors'; import { useCurrentNetworkId } from '@app/store/networks/networks.selectors'; -import { DropdownMenu } from '@app/ui/components/dropdown-menu/dropdown-menu'; import { openFeedbackDialog } from '../feedback-button/feedback-button'; import { extractDeviceNameFromKnownTargetIds } from '../ledger/utils/generic-ledger-utils'; diff --git a/src/app/features/stacks-high-fee-warning/stacks-high-fee-dialog.tsx b/src/app/features/stacks-high-fee-warning/stacks-high-fee-dialog.tsx index bb57e2ef715..9ebcd5850e7 100644 --- a/src/app/features/stacks-high-fee-warning/stacks-high-fee-dialog.tsx +++ b/src/app/features/stacks-high-fee-warning/stacks-high-fee-dialog.tsx @@ -1,8 +1,9 @@ -import { Button, Caption, Dialog, ErrorIcon, Link, Title } from '@leather.io/ui'; import { SendCryptoAssetSelectors } from '@tests/selectors/send.selectors'; import { useFormikContext } from 'formik'; import { HStack, Stack } from 'leather-styles/jsx'; +import { Button, Caption, Dialog, ErrorIcon, Link, Title } from '@leather.io/ui'; + import { StacksSendFormValues } from '@shared/models/form.model'; import { openInNewTab } from '@app/common/utils/open-in-new-tab'; diff --git a/src/app/pages/receive/components/receive-tokens.layout.tsx b/src/app/pages/receive/components/receive-tokens.layout.tsx index 1398402a668..d476f84da4a 100644 --- a/src/app/pages/receive/components/receive-tokens.layout.tsx +++ b/src/app/pages/receive/components/receive-tokens.layout.tsx @@ -1,11 +1,12 @@ import QRCode from 'react-qr-code'; import { useNavigate } from 'react-router-dom'; -import { AddressDisplayer, Button, Dialog } from '@leather.io/ui'; import { SharedComponentsSelectors } from '@tests/selectors/shared-component.selectors'; import { Box, Flex, styled } from 'leather-styles/jsx'; import { token } from 'leather-styles/tokens'; +import { AddressDisplayer, Button, Dialog } from '@leather.io/ui'; + import { useLocationState } from '@app/common/hooks/use-location-state'; import { useBackgroundLocationRedirect } from '@app/routes/hooks/use-background-location-redirect'; import { Footer } from '@app/ui/components/containers/footers/footer'; diff --git a/src/app/pages/receive/receive-dialog.tsx b/src/app/pages/receive/receive-dialog.tsx index 14fa801474e..57ef07fcd89 100644 --- a/src/app/pages/receive/receive-dialog.tsx +++ b/src/app/pages/receive/receive-dialog.tsx @@ -1,10 +1,11 @@ import { useLocation, useNavigate } from 'react-router-dom'; -import { Dialog, Tabs } from '@leather.io/ui'; import { HomePageSelectors } from '@tests/selectors/home.selectors'; import { Box } from 'leather-styles/jsx'; import get from 'lodash.get'; +import { Dialog, Tabs } from '@leather.io/ui'; + import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; diff --git a/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx b/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx index 81b6a95be6c..339f28d5c5e 100644 --- a/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx +++ b/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx @@ -1,9 +1,10 @@ import { useNavigate } from 'react-router-dom'; -import { Button, Dialog, OrdinalAvatarIcon } from '@leather.io/ui'; import { Form, Formik } from 'formik'; import { Box, Flex } from 'leather-styles/jsx'; +import { Button, Dialog, OrdinalAvatarIcon } from '@leather.io/ui'; + import { RouteUrls } from '@shared/route-urls'; import { ErrorLabel } from '@app/components/error-label'; diff --git a/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx b/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx index 1d00a994554..24e26acf4d4 100644 --- a/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx +++ b/src/app/pages/send/ordinal-inscription/send-inscription-review.tsx @@ -1,11 +1,12 @@ import { useLocation, useNavigate } from 'react-router-dom'; -import { useBitcoinBroadcastTransaction } from '@leather.io/query'; -import { Button, Dialog } from '@leather.io/ui'; import { bytesToHex } from '@noble/hashes/utils'; import { Box, Flex, Stack } from 'leather-styles/jsx'; import get from 'lodash.get'; +import { useBitcoinBroadcastTransaction } from '@leather.io/query'; +import { Button, Dialog } from '@leather.io/ui'; + import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; diff --git a/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx b/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx index a175fa3109e..8cbcff5c829 100644 --- a/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx +++ b/src/app/pages/send/ordinal-inscription/sent-inscription-summary.tsx @@ -1,10 +1,11 @@ import { useLocation, useNavigate } from 'react-router-dom'; -import type { Blockchains, Inscription } from '@leather.io/models'; -import { CheckmarkIcon, CopyIcon, Dialog, ExternalLinkIcon } from '@leather.io/ui'; import { Box, Flex, HStack, Stack } from 'leather-styles/jsx'; import get from 'lodash.get'; +import type { Blockchains, Inscription } from '@leather.io/models'; +import { CheckmarkIcon, CopyIcon, Dialog, ExternalLinkIcon } from '@leather.io/ui'; + import { RouteUrls } from '@shared/route-urls'; import { analytics } from '@shared/utils/analytics'; diff --git a/src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx b/src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx deleted file mode 100644 index 183e6275f65..00000000000 --- a/src/app/ui/components/dropdown-menu/dropdown-menu-item.layout.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { ReactNode } from 'react'; - -import { Flex } from 'leather-styles/jsx'; - -interface DropdownMenuItemLayoutProps { - contentLeft: ReactNode; - contentRight?: ReactNode; -} -export function DropdownMenuItemLayout({ contentLeft, contentRight }: DropdownMenuItemLayoutProps) { - return ( - - {contentLeft} - {contentRight} - - ); -} diff --git a/src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx b/src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx deleted file mode 100644 index 391662d9cf9..00000000000 --- a/src/app/ui/components/dropdown-menu/dropdown-menu.stories.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { HStack, styled } from 'leather-styles/jsx'; - -import { PlaceholderIcon } from '@leather.io/ui'; - -import { DropdownMenu as Component, DropdownMenuItem } from './dropdown-menu'; -import { DropdownMenuItemLayout } from './dropdown-menu-item.layout'; - -const items: DropdownMenuItem[] = [{ label: 'Label 1' }, { label: 'Label 2' }]; - -const meta: Meta = { - component: Component.Root, - tags: ['autodocs'], - title: 'DropdownMenu', -}; - -export default meta; -type Story = StoryObj; - -export const DropdownMenu: Story = { - render: () => ( - - - Button - - - - - Label - {items.map(item => ( - - - - {item.label} - - } - /> - - ))} - - - - - ), -}; diff --git a/src/app/ui/components/dropdown-menu/dropdown-menu.tsx b/src/app/ui/components/dropdown-menu/dropdown-menu.tsx deleted file mode 100644 index a8f3738be09..00000000000 --- a/src/app/ui/components/dropdown-menu/dropdown-menu.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import { ReactNode, forwardRef } from 'react'; - -import * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu'; -import { css } from 'leather-styles/css'; -import { type HTMLStyledProps, styled } from 'leather-styles/jsx'; - -import { ChevronDownIcon, Flag, pressableBaseStyles, pressableStyles } from '@leather.io/ui'; - -export interface DropdownMenuItem { - iconLeft?: ReactNode; - iconRight?: ReactNode; - label: string; -} -const dropdownButtonStyles = css({ - bg: 'ink.background-primary', - borderRadius: 'xs', - fontWeight: 500, - maxWidth: 'fit-content', - maxHeight: 'fit-content', - px: 'space.04', - py: 'space.03', - textStyle: 'label.02', - userSelect: 'none', - '[data-state=open] &': { bg: 'ink.component-background-pressed' }, -}); - -function Button({ children, ...props }: HTMLStyledProps<'div'>) { - return ( - - }> - {children} - - - ); -} - -const dropdownIconButtonStyles = css({ - _hover: { bg: 'ink.component-background-hover' }, - _focus: { outline: 'none' }, - p: 'space.02', - - '&[data-state=open]': { bg: 'ink.component-background-pressed' }, -}); -const IconButton: typeof RadixDropdownMenu.Trigger = forwardRef((props, ref) => ( - -)); - -const dropdownTriggerStyles = css({ - _focus: { outline: 'none' }, -}); - -const Trigger: typeof RadixDropdownMenu.Trigger = forwardRef((props, ref) => ( - -)); - -const dropdownContentStyles = css({ - alignItems: 'center', - '--base-menu-padding': '0px', - bg: 'ink.background-primary', - borderRadius: 'xs', - boxShadow: - '0px 12px 24px 0px rgba(18, 16, 15, 0.08), 0px 4px 8px 0px rgba(18, 16, 15, 0.08), 0px 0px 2px 0px rgba(18, 16, 15, 0.08)', - p: '0', - willChange: 'transform, opacity', - zIndex: 999, - // _closed: { animation: 'slideDownAndOut 140ms ease-in-out' }, - // _open: { animation: 'slideUpAndFade 140ms ease-in-out' }, -}); -const Content: typeof RadixDropdownMenu.Content = forwardRef(({ className, ...props }, ref) => ( - -)); - -const dropdownMenuLabelStyles = css({ - color: 'ink.text-subdued', - height: 'auto', - px: 'space.03', - py: 'space.02', - textStyle: 'body.02', - width: '100%', -}); -const Label: typeof RadixDropdownMenu.Label = forwardRef((props, ref) => ( - -)); - -const dropdownItemStyles = css({ p: 'space.03' }); -const Item: typeof RadixDropdownMenu.Item = forwardRef((props, ref) => ( - - - -)); - -const dropdownMenuSeparatorStyles = css({ - bg: 'ink.background-primary', - color: 'ink.border-default', - mx: '0px', - my: 'space.03', -}); -const Separator: typeof RadixDropdownMenu.Separator = forwardRef((props, ref) => ( - -)); -const dropdownMenuGroupStyles = css({ - p: 'space.02', -}); -const Group: typeof RadixDropdownMenu.Group = forwardRef((props, ref) => ( - -)); - -export const DropdownMenu = { - Root: RadixDropdownMenu.Root, - Group, - Portal: RadixDropdownMenu.Portal, - Trigger, - Button, - IconButton, - Content, - Label, - Item, - Separator, -}; From 26b6b4f70b3c847f98bdd389ec5f8af2934b8089 Mon Sep 17 00:00:00 2001 From: Fara Woolf Date: Thu, 27 Jun 2024 15:45:29 -0500 Subject: [PATCH 21/26] fix: add ledger test for bitcoin api calls, close leather-io/issues#114 and #5574 --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- tests/specs/ledger/ledger.spec.ts | 20 ++++++++++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index a0523abf245..1ff431ec189 100644 --- a/package.json +++ b/package.json @@ -139,7 +139,7 @@ "@leather.io/constants": "0.8.0", "@leather.io/crypto": "1.0.2", "@leather.io/models": "0.10.0", - "@leather.io/query": "0.9.2", + "@leather.io/query": "0.9.3", "@leather.io/tokens": "0.6.0", "@leather.io/ui": "1.5.1", "@leather.io/utils": "0.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cbcabae9753..4d031e8c254 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,8 +48,8 @@ importers: specifier: 0.10.0 version: 0.10.0 '@leather.io/query': - specifier: 0.9.2 - version: 0.9.2(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1) + specifier: 0.9.3 + version: 0.9.3(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1) '@leather.io/tokens': specifier: 0.6.0 version: 0.6.0 @@ -2901,8 +2901,8 @@ packages: '@leather.io/prettier-config@0.5.0': resolution: {integrity: sha512-Pul+4MAyBKnQvqgcKJLbZl4DHnS4kCJzSuaYFW6cfHdre7BFn/iY6Er/Dvm9F8g7VMtkdYu68jEYxQ1Xc7A0KQ==} - '@leather.io/query@0.9.2': - resolution: {integrity: sha512-PSrLRl89rOU/LL2mXT6RI5SVytWDDQx2XDthDD6d/McwBhz2NNhRTBnKjnTTlEA1/gaHGqL+VZrOWr86HZ9Wzg==} + '@leather.io/query@0.9.3': + resolution: {integrity: sha512-hGAcA4Au/lg2yz/bD006XHNieQ/FMCzFU6r8L+o7oipjG+lzR48r8enLNE/M1SgusgKXhcp577XXGBLNO7oB9w==} peerDependencies: react: '*' @@ -17583,7 +17583,7 @@ snapshots: - '@vue/compiler-sfc' - supports-color - '@leather.io/query@0.9.2(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1)': + '@leather.io/query@0.9.3(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1)': dependencies: '@fungible-systems/zone-file': 2.0.0 '@hirosystems/token-metadata-api-client': 1.2.0(encoding@0.1.13) diff --git a/tests/specs/ledger/ledger.spec.ts b/tests/specs/ledger/ledger.spec.ts index 2425516714c..b3ad04bd0f8 100644 --- a/tests/specs/ledger/ledger.spec.ts +++ b/tests/specs/ledger/ledger.spec.ts @@ -1,5 +1,7 @@ import { TEST_ACCOUNT_1_STX_ADDRESS } from '@tests/mocks/constants'; +import type { HomePage } from '@tests/page-object-models/home.page'; import { makeLedgerTestAccountWalletState } from '@tests/page-object-models/onboarding.page'; +import { SettingsSelectors } from '@tests/selectors/settings.selectors'; import { test } from '../../fixtures/fixtures'; @@ -9,6 +11,13 @@ const specs = { withBitcoinKeysOnly: makeLedgerTestAccountWalletState(['bitcoin']), }; +async function interceptBitcoinRequests(homePage: HomePage) { + const requestPromise = homePage.page.waitForRequest(/bestinslot|blockstream|inscriptions/, { + timeout: 1000, + }); + return requestPromise; +} + test.describe('App with Ledger', () => { for (const [testName, state] of Object.entries(specs)) { test.describe(testName, () => { @@ -33,6 +42,17 @@ test.describe('App with Ledger', () => { const stacksAddress = await homePage.getReceiveStxAddress(); test.expect(stacksAddress).toEqual(TEST_ACCOUNT_1_STX_ADDRESS); }); + + test('there are no bitcoin requests', async ({ homePage }) => { + const requestPromise = interceptBitcoinRequests(homePage); + + await homePage.page.getByTestId(SettingsSelectors.CurrentAccountDisplayName).click(); + + await test + .expect(async () => await test.expect(requestPromise).rejects.toThrowError()) + .toPass() + .catch(); + }); } test('that you can navigate to activity page', async ({ homePage }) => { From abdaab58f00fab948f56bbdaee211414b3e771b9 Mon Sep 17 00:00:00 2001 From: carl Date: Thu, 27 Jun 2024 21:33:16 +0300 Subject: [PATCH 22/26] fix: remove extra div, ref leather-io/issues#5469 --- .../bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx b/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx index e67ac87ec9d..4b9ee9b36a7 100644 --- a/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx +++ b/src/app/features/asset-list/bitcoin/brc20-token-asset-list/brc20-token-asset-list.tsx @@ -42,6 +42,7 @@ export function Brc20TokenAssetList({ tokens, variant }: Brc20TokenAssetListProp }); } + if (!tokens.length) return null; return ( {tokens.map(token => ( From a5011ece72a27c399fbf2e0b0ae5f9082c7b495f Mon Sep 17 00:00:00 2001 From: Pete Watters <2938440+pete-watters@users.noreply.github.com> Date: Mon, 1 Jul 2024 06:44:52 +0100 Subject: [PATCH 23/26] fix: refactor dialog to use IconButton to fix title without affecting header, closes #5470 --- .../headers/components/header-action-button.tsx | 1 - .../components/containers/headers/dialog-header.tsx | 13 ++----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/app/ui/components/containers/headers/components/header-action-button.tsx b/src/app/ui/components/containers/headers/components/header-action-button.tsx index 220cc208e3b..1fd39792ad5 100644 --- a/src/app/ui/components/containers/headers/components/header-action-button.tsx +++ b/src/app/ui/components/containers/headers/components/header-action-button.tsx @@ -22,7 +22,6 @@ export function HeaderActionButton({ icon, onAction, dataTestId }: HeaderActionB transition="transition" userSelect="none" zIndex={999} - position="absolute" /> ); } diff --git a/src/app/ui/components/containers/headers/dialog-header.tsx b/src/app/ui/components/containers/headers/dialog-header.tsx index 092bd207c86..40d0f58093a 100644 --- a/src/app/ui/components/containers/headers/dialog-header.tsx +++ b/src/app/ui/components/containers/headers/dialog-header.tsx @@ -1,11 +1,8 @@ import { ReactNode } from 'react'; -import { SharedComponentsSelectors } from '@tests/selectors/shared-component.selectors'; import { Flex, styled } from 'leather-styles/jsx'; -import { CloseIcon } from '@leather.io/ui'; - -import { HeaderActionButton } from './components/header-action-button'; +import { CloseIcon, IconButton } from '@leather.io/ui'; interface DialogHeaderProps { onClose?(): void; @@ -28,13 +25,7 @@ export function DialogHeader({ onClose, title }: DialogHeaderProps) { {title} )} - {onClose && ( - } - dataTestId={SharedComponentsSelectors.HeaderCloseBtn} - onAction={onClose} - /> - )} + {onClose && } onClick={onClose} position="absolute" />} ); } From 4571ad75089b0a81f504ed2b7a5b2cb8020327cb Mon Sep 17 00:00:00 2001 From: Pete Watters <2938440+pete-watters@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:45:41 +0100 Subject: [PATCH 24/26] fix: adjust collectible arrow hover transparancy, closes #4971 --- .../components/collectible-hover.tsx | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/app/features/collectibles/components/collectible-hover.tsx b/src/app/features/collectibles/components/collectible-hover.tsx index 10503e914e5..79d7a49146e 100644 --- a/src/app/features/collectibles/components/collectible-hover.tsx +++ b/src/app/features/collectibles/components/collectible-hover.tsx @@ -1,8 +1,8 @@ import { ReactNode } from 'react'; -import { Box, styled } from 'leather-styles/jsx'; +import { Box } from 'leather-styles/jsx'; -import { ArrowUpIcon } from '@leather.io/ui'; +import { ArrowUpIcon, IconButton } from '@leather.io/ui'; interface CollectibleHoverProps { collectibleTypeIcon?: ReactNode; @@ -38,15 +38,23 @@ export function CollectibleHover({ {collectibleTypeIcon} {onClickCallToAction && ( - + } onClick={e => { e.stopPropagation(); onClickCallToAction(); @@ -57,9 +65,7 @@ export function CollectibleHover({ type="button" width="30px" zIndex={999} - > - - + /> )} ); From ed284b937f217aa4f2b40ce385d908e4b8e07840 Mon Sep 17 00:00:00 2001 From: Pete Watters <2938440+pete-watters@users.noreply.github.com> Date: Tue, 2 Jul 2024 07:52:14 +0100 Subject: [PATCH 25/26] fix: apply spamFilter to all crypto captions and titles, ref leather-wallet/issues#5589 --- .../crypto-asset-item/crypto-asset-item.layout.tsx | 2 +- .../sip10-token-asset-list/sip10-token-asset-item.tsx | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx b/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx index d0fb8db28cc..4b06282bb6e 100644 --- a/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx +++ b/src/app/components/crypto-asset-item/crypto-asset-item.layout.tsx @@ -73,7 +73,7 @@ export function CryptoAssetItemLayout({ diff --git a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx index 0f4c84388fe..c78b77f9517 100644 --- a/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx +++ b/src/app/features/asset-list/stacks/sip10-token-asset-list/sip10-token-asset-item.tsx @@ -1,5 +1,4 @@ import type { CryptoAssetBalance, MarketData, Sip10CryptoAssetInfo } from '@leather.io/models'; -import { spamFilter } from '@leather.io/utils'; import { convertAssetBalanceToFiat } from '@app/common/asset-utils'; import { getSafeImageCanonicalUri } from '@app/common/stacks-utils'; @@ -20,23 +19,23 @@ export function Sip10TokenAssetItem({ marketData, onSelectAsset, }: Sip10TokenAssetItemProps) { - const name = spamFilter(info.name); const fiatBalance = convertAssetBalanceToFiat({ balance: balance.availableBalance, marketData, }); + const { contractId, imageCanonicalUri, name, symbol } = info; return ( {name[0]} From 7ec537bd2131185210a691e470541de3852ca971 Mon Sep 17 00:00:00 2001 From: Pete Watters <2938440+pete-watters@users.noreply.github.com> Date: Tue, 2 Jul 2024 08:08:17 +0100 Subject: [PATCH 26/26] chore: update monorepo dependancies --- package.json | 8 +-- pnpm-lock.yaml | 171 ++++++++++++++++++++++++------------------------- 2 files changed, 87 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index 1ff431ec189..be9d7b83a94 100644 --- a/package.json +++ b/package.json @@ -135,14 +135,14 @@ "@dlc-link/dlc-tools": "1.1.1", "@fungible-systems/zone-file": "2.0.0", "@hirosystems/token-metadata-api-client": "1.2.0", - "@leather.io/bitcoin": "0.8.1", + "@leather.io/bitcoin": "0.8.2", "@leather.io/constants": "0.8.0", "@leather.io/crypto": "1.0.2", "@leather.io/models": "0.10.0", - "@leather.io/query": "0.9.3", + "@leather.io/query": "0.9.4", "@leather.io/tokens": "0.6.0", - "@leather.io/ui": "1.5.1", - "@leather.io/utils": "0.9.1", + "@leather.io/ui": "1.6.0", + "@leather.io/utils": "0.9.2", "@ledgerhq/hw-transport-webusb": "6.27.19", "@noble/hashes": "1.4.0", "@noble/secp256k1": "2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d031e8c254..c31b5584283 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,8 +36,8 @@ importers: specifier: 1.2.0 version: 1.2.0(encoding@0.1.13) '@leather.io/bitcoin': - specifier: 0.8.1 - version: 0.8.1(encoding@0.1.13) + specifier: 0.8.2 + version: 0.8.2(encoding@0.1.13) '@leather.io/constants': specifier: 0.8.0 version: 0.8.0 @@ -48,17 +48,17 @@ importers: specifier: 0.10.0 version: 0.10.0 '@leather.io/query': - specifier: 0.9.3 - version: 0.9.3(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1) + specifier: 0.9.4 + version: 0.9.4(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1) '@leather.io/tokens': specifier: 0.6.0 version: 0.6.0 '@leather.io/ui': - specifier: 1.5.1 - version: 1.5.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@swc/core@1.4.8)(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5) + specifier: 1.6.0 + version: 1.6.0(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@swc/core@1.4.8)(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5) '@leather.io/utils': - specifier: 0.9.1 - version: 0.9.1 + specifier: 0.9.2 + version: 0.9.2 '@ledgerhq/hw-transport-webusb': specifier: 6.27.19 version: 6.27.19 @@ -85,7 +85,7 @@ importers: version: 2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@reduxjs/toolkit': specifier: 2.2.3 - version: 2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1) + version: 2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1) '@scure/base': specifier: 1.1.6 version: 1.1.6 @@ -313,7 +313,7 @@ importers: version: 2.0.12(react@18.3.1) react-redux: specifier: 9.1.0 - version: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) + version: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) react-router-dom: specifier: 6.23.1 version: 6.23.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -401,10 +401,10 @@ importers: version: 0.5.13(@types/webpack@5.28.5(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0)))(react-refresh@0.14.2)(type-fest@4.20.0)(webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.91.0))(webpack-hot-middleware@2.26.1)(webpack@5.91.0(@swc/core@1.4.8)(esbuild@0.21.4)(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.91.0))) '@redux-devtools/cli': specifier: 4.0.0 - version: 4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0)) + version: 4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0)) '@redux-devtools/remote': specifier: 0.9.3 - version: 0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) + version: 0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) '@schemastore/web-manifest': specifier: 0.0.6 version: 0.0.6 @@ -2880,8 +2880,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@leather.io/bitcoin@0.8.1': - resolution: {integrity: sha512-f7Su5azKbxmF2wbIq3OOeMAXb2QiP5Y7CUzWGhi8qbUDfKY0Fr35VgOD0kbwKLzbczJk+SyPUGXsZMt37TwqGQ==} + '@leather.io/bitcoin@0.8.2': + resolution: {integrity: sha512-nUI2Q/kJgIg8CPdaiM4V/uy5PoaEiwwnHhb4iFPU3VM9Iw7bHmGo0qKQSRgm2lz+oNKQ79apDklM6ldZr2e4QA==} '@leather.io/constants@0.8.0': resolution: {integrity: sha512-PmiFZG+MLqU6hi9Nr3wfb9SG57FMnV+4DCtDOr5SWB/7P1OR//qYDoaiSS9B4VwW4WRjdy32EmO/Om8z61WuMw==} @@ -2901,8 +2901,8 @@ packages: '@leather.io/prettier-config@0.5.0': resolution: {integrity: sha512-Pul+4MAyBKnQvqgcKJLbZl4DHnS4kCJzSuaYFW6cfHdre7BFn/iY6Er/Dvm9F8g7VMtkdYu68jEYxQ1Xc7A0KQ==} - '@leather.io/query@0.9.3': - resolution: {integrity: sha512-hGAcA4Au/lg2yz/bD006XHNieQ/FMCzFU6r8L+o7oipjG+lzR48r8enLNE/M1SgusgKXhcp577XXGBLNO7oB9w==} + '@leather.io/query@0.9.4': + resolution: {integrity: sha512-+5JY+uJ37ILt0Ya8WPbB/HGJGd4wIEvtoV65IQQLUM3vZoj9HZfblKWXiJG1/hNRvTvLkStZS659USzroDTzXg==} peerDependencies: react: '*' @@ -2912,11 +2912,11 @@ packages: '@leather.io/tokens@0.6.0': resolution: {integrity: sha512-x+JIHk12UJglf+Z1gcmywZ4HqjX/om5yqeSNU7xSypiJjIjstqco3+D3vGb9XAtqBxPHevKM4pgQaJ1z9JVg8g==} - '@leather.io/ui@1.5.1': - resolution: {integrity: sha512-xlSQuAPIEArpStEiIPj9uhWiyvk/ikboZnU2fMdmZh+KJHgcba/V557Z3nyHxjAiPOO1LPonyGa6yHgIaextUQ==} + '@leather.io/ui@1.6.0': + resolution: {integrity: sha512-fy3oLLA6Kjyyu5bTo2vh54dQ3uHPkmFci1pniqlFkeF0ptLidGlZfIwEhBrrFJujI87S9nzqXCTCb4Xj8k5CEA==} - '@leather.io/utils@0.9.1': - resolution: {integrity: sha512-d1IgYl13u6hSm36GGUlRTvRlsOGtlPWuvXq1xlTR4eH8WWfTta4GcSRBiy6W06f7wHwspnI1+2ycnjgZjo7SvA==} + '@leather.io/utils@0.9.2': + resolution: {integrity: sha512-0ChJvcwjfxDJpQFJJFhEBcBTnx/umiA6EJDIZVQ+XJV/EXZet9KnY/hwl8DrhjLKyEimK9T9mK9VscUySdmhkg==} '@ledgerhq/devices@8.2.0': resolution: {integrity: sha512-XROTW2gTmmuy+YPPDjdtKKTQ3mfxrPtKtV+a9QFbj8f5MnjVMV0Zpy1BIB4CyIMsVVi4z6+nI67auT7IlsM3SQ==} @@ -3790,10 +3790,6 @@ packages: resolution: {integrity: sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==} engines: {node: '>=18'} - '@react-native/assets-registry@0.74.83': - resolution: {integrity: sha512-2vkLMVnp+YTZYTNSDIBZojSsjz8sl5PscP3j4GcV6idD8V978SZfwFlk8K0ti0BzRs11mzL0Pj17km597S/eTQ==} - engines: {node: '>=18'} - '@react-native/assets-registry@0.74.84': resolution: {integrity: sha512-dzUhwyaX04QosWZ8zyaaNB/WYZIdeDN1lcpfQbqiOhZJShRH+FLTDVONE/dqlMQrP+EO7lDqF0RrlIt9lnOCQQ==} engines: {node: '>=18'} @@ -12604,6 +12600,7 @@ packages: engines: {node: '>=18'} hasBin: true peerDependencies: + '@react-native/assets-registry': '*' '@types/react': ^18.2.6 react: 18.2.0 peerDependenciesMeta: @@ -17524,13 +17521,13 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@leather.io/bitcoin@0.8.1(encoding@0.1.13)': + '@leather.io/bitcoin@0.8.2(encoding@0.1.13)': dependencies: '@bitcoinerlab/secp256k1': 1.0.2 '@leather.io/constants': 0.8.0 '@leather.io/crypto': 1.0.2 '@leather.io/models': 0.10.0 - '@leather.io/utils': 0.9.1 + '@leather.io/utils': 0.9.2 '@noble/hashes': 1.4.0 '@noble/secp256k1': 2.1.0 '@scure/base': 1.1.6 @@ -17583,15 +17580,15 @@ snapshots: - '@vue/compiler-sfc' - supports-color - '@leather.io/query@0.9.3(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1)': + '@leather.io/query@0.9.4(@stacks/network@6.13.0(encoding@0.1.13))(encoding@0.1.13)(react@18.3.1)': dependencies: '@fungible-systems/zone-file': 2.0.0 '@hirosystems/token-metadata-api-client': 1.2.0(encoding@0.1.13) - '@leather.io/bitcoin': 0.8.1(encoding@0.1.13) + '@leather.io/bitcoin': 0.8.2(encoding@0.1.13) '@leather.io/constants': 0.8.0 '@leather.io/models': 0.10.0 '@leather.io/rpc': 2.0.0 - '@leather.io/utils': 0.9.1 + '@leather.io/utils': 0.9.2 '@noble/hashes': 1.4.0 '@scure/base': 1.1.6 '@scure/bip32': 1.4.0 @@ -17622,11 +17619,11 @@ snapshots: '@leather.io/tokens@0.6.0': {} - '@leather.io/ui@1.5.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@swc/core@1.4.8)(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5)': + '@leather.io/ui@1.6.0(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@swc/core@1.4.8)(@types/react-dom@18.3.0)(@types/react@18.3.3)(encoding@0.1.13)(expo-modules-autolinking@1.11.1)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5)': dependencies: '@expo/vector-icons': 14.0.0 '@leather.io/tokens': 0.6.0 - '@leather.io/utils': 0.9.1 + '@leather.io/utils': 0.9.2 '@radix-ui/react-accessible-icon': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-accordion': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-avatar': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -17638,9 +17635,9 @@ snapshots: '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@react-native/assets-registry': 0.73.1 '@react-native/metro-config': 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) - '@rnx-kit/metro-config': 1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@rnx-kit/metro-config': 1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@rnx-kit/metro-resolver-symlinks': 0.1.35 - '@shopify/restyle': 2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@shopify/restyle': 2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) '@storybook/react': 7.6.15(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.5) expo: 51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) expo-asset: 10.0.6(expo@51.0.8(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13)) @@ -17652,7 +17649,7 @@ snapshots: metro-resolver: 0.80.5 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) tsup: 8.1.0(@swc/core@1.4.8)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.8)(@types/node@20.12.12)(typescript@5.4.5))(typescript@5.4.5) transitivePeerDependencies: - '@babel/core' @@ -17670,7 +17667,7 @@ snapshots: - typescript - utf-8-validate - '@leather.io/utils@0.9.1': + '@leather.io/utils@0.9.2': dependencies: '@leather.io/constants': 0.8.0 '@leather.io/models': 0.10.0 @@ -19291,8 +19288,6 @@ snapshots: '@react-native/assets-registry@0.73.1': {} - '@react-native/assets-registry@0.74.83': {} - '@react-native/assets-registry@0.74.84': {} '@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.24.6(@babel/core@7.24.4))': @@ -19588,29 +19583,29 @@ snapshots: '@react-native/normalize-colors@0.74.83': {} - '@react-native/virtualized-lists@0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@react-native/virtualized-lists@0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) optionalDependencies: '@types/react': 18.3.3 - '@redux-devtools/app@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/app@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/chart-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) - '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) - '@redux-devtools/inspector-monitor-test-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@redux-devtools/inspector-monitor-trace-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) - '@redux-devtools/log-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) - '@redux-devtools/rtk-query-monitor': 5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@redux-devtools/slider-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/chart-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor-test-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/inspector-monitor-trace-tab': 4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) + '@redux-devtools/log-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1) + '@redux-devtools/rtk-query-monitor': 5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/slider-monitor': 5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) + '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) '@types/react': 18.3.3 '@types/styled-components': 5.1.34 d3-state-visualizer: 2.0.0 @@ -19623,7 +19618,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-icons: 4.12.0(react@18.3.1) react-is: 18.2.0 - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) + react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) redux: 4.2.1 redux-persist: 6.0.0(react@18.3.1)(redux@4.2.1) socketcluster-client: 17.2.2 @@ -19634,10 +19629,10 @@ snapshots: - react-native - utf-8-validate - '@redux-devtools/chart-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/chart-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/runtime': 7.23.9 - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 d3-state-visualizer: 2.0.0 @@ -19646,11 +19641,11 @@ snapshots: redux: 4.2.1 redux-devtools-themes: 1.0.0 - '@redux-devtools/cli@4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))': + '@redux-devtools/cli@4.0.0(@babel/core@7.24.4)(@types/react-dom@18.3.0)(@types/styled-components@5.1.34)(encoding@0.1.13)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))': dependencies: '@apollo/server': 4.10.0(encoding@0.1.13)(graphql@16.8.1) '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/app': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) + '@redux-devtools/app': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@types/react-dom@18.3.0)(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@types/react': 18.3.3 body-parser: 1.20.2 chalk: 5.3.0 @@ -19690,20 +19685,20 @@ snapshots: - tedious - utf-8-validate - '@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1)': + '@redux-devtools/core@4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1)': dependencies: '@babel/runtime': 7.23.9 '@redux-devtools/instrument': 2.2.0(redux@4.2.1) lodash: 4.17.21 react: 18.3.1 - react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) + react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) redux: 5.0.1 - '@redux-devtools/inspector-monitor-test-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/inspector-monitor-test-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@types/react': 18.3.3 '@types/styled-components': 5.1.34 @@ -19718,12 +19713,12 @@ snapshots: simple-diff: 1.7.2 styled-components: 5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1) - '@redux-devtools/inspector-monitor-trace-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/inspector-monitor-trace-tab@4.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/code-frame': 8.0.0-alpha.5 '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/inspector-monitor': 6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1) '@types/chrome': 0.0.254 '@types/react': 18.3.3 anser: 2.1.1 @@ -19735,7 +19730,7 @@ snapshots: redux-devtools-themes: 1.0.0 source-map: 0.5.7 - '@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1)': + '@redux-devtools/inspector-monitor@6.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@5.0.1)': dependencies: '@babel/runtime': 7.23.9 '@dnd-kit/core': 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -19743,7 +19738,7 @@ snapshots: '@dnd-kit/sortable': 8.0.0(@dnd-kit/core@6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@dnd-kit/utilities': 3.2.2(react@18.3.1) '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@types/lodash': 4.14.202 '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -19772,10 +19767,10 @@ snapshots: lodash: 4.17.21 redux: 5.0.1 - '@redux-devtools/log-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': + '@redux-devtools/log-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(react@18.3.1)(redux@4.2.1)': dependencies: '@babel/runtime': 7.23.9 - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@types/lodash.debounce': 4.0.9 '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -19785,11 +19780,11 @@ snapshots: redux: 4.2.1 redux-devtools-themes: 1.0.0 - '@redux-devtools/remote@0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': + '@redux-devtools/remote@0.9.3(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': dependencies: '@babel/runtime': 7.24.4 '@redux-devtools/instrument': 2.2.0(redux@5.0.1) - '@redux-devtools/utils': 3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) + '@redux-devtools/utils': 3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1) jsan: 3.1.14 querystring: 0.2.1 redux: 5.0.1 @@ -19801,13 +19796,13 @@ snapshots: - immutable - utf-8-validate - '@redux-devtools/rtk-query-monitor@5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/rtk-query-monitor@5.0.0(@emotion/react@11.11.3(@types/react@18.3.3)(react@18.3.1))(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 '@emotion/react': 11.11.3(@types/react@18.3.3)(react@18.3.1) - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) - '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) + '@reduxjs/toolkit': 1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1) '@types/lodash': 4.14.202 '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -19830,10 +19825,10 @@ snapshots: immutable: 4.3.6 jsan: 3.1.14 - '@redux-devtools/slider-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': + '@redux-devtools/slider-monitor@5.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1))': dependencies: '@babel/runtime': 7.23.9 - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/ui': 1.3.1(@types/react@18.3.3)(@types/styled-components@5.1.34)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@5.3.11(@babel/core@7.24.4)(react-dom@18.3.1(react@18.3.1))(react-is@18.2.0)(react@18.3.1)) '@types/react': 18.3.3 '@types/redux-devtools-themes': 1.0.3 @@ -19870,10 +19865,10 @@ snapshots: transitivePeerDependencies: - react-dom - '@redux-devtools/utils@3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': + '@redux-devtools/utils@3.0.0(@redux-devtools/core@4.0.0(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)(redux@4.2.1))(immutable@4.3.6)(redux@5.0.1)': dependencies: '@babel/runtime': 7.24.4 - '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) + '@redux-devtools/core': 4.0.0(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)(redux@5.0.1) '@redux-devtools/serialize': 0.4.2(immutable@4.3.6) '@types/get-params': 0.1.2 get-params: 0.1.2 @@ -19883,7 +19878,7 @@ snapshots: nanoid: 3.3.4 redux: 5.0.1 - '@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)': + '@reduxjs/toolkit@1.9.7(react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1))(react@18.3.1)': dependencies: immer: 9.0.21 redux: 4.2.1 @@ -19891,9 +19886,9 @@ snapshots: reselect: 4.1.8 optionalDependencies: react: 18.3.1 - react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) + react-redux: 8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1) - '@reduxjs/toolkit@2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)': + '@reduxjs/toolkit@2.2.3(react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1))(react@18.3.1)': dependencies: immer: 10.0.4 redux: 5.0.1 @@ -19901,7 +19896,7 @@ snapshots: reselect: 5.1.0 optionalDependencies: react: 18.3.1 - react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) + react-redux: 9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1) '@remix-run/router@1.16.1': {} @@ -19932,14 +19927,14 @@ snapshots: '@rnx-kit/console@1.1.0': {} - '@rnx-kit/metro-config@1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@rnx-kit/metro-config@1.3.14(@react-native/metro-config@0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: '@rnx-kit/console': 1.1.0 '@rnx-kit/tools-node': 2.1.1 '@rnx-kit/tools-react-native': 1.3.5 '@rnx-kit/tools-workspaces': 0.1.6 react: 18.2.0 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) optionalDependencies: '@react-native/metro-config': 0.73.5(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) @@ -20226,10 +20221,10 @@ snapshots: - encoding - supports-color - '@shopify/restyle@2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@shopify/restyle@2.4.2(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: react: 18.2.0 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) '@sideway/address@4.1.5': dependencies: @@ -30904,19 +30899,19 @@ snapshots: lottie-web: 5.12.2 react: 18.3.1 - react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1): + react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native-community/cli': 13.6.6(encoding@0.1.13) '@react-native-community/cli-platform-android': 13.6.6(encoding@0.1.13) '@react-native-community/cli-platform-ios': 13.6.6(encoding@0.1.13) - '@react-native/assets-registry': 0.74.83 + '@react-native/assets-registry': 0.73.1 '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.6(@babel/core@7.24.4)) '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(encoding@0.1.13) '@react-native/gradle-plugin': 0.74.83 '@react-native/js-polyfills': 0.74.83 '@react-native/normalize-colors': 0.74.83 - '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@react-native/virtualized-lists': 0.74.83(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -30960,7 +30955,7 @@ snapshots: qr.js: 0.0.0 react: 18.3.1 - react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1): + react-redux@8.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@4.2.1): dependencies: '@babel/runtime': 7.23.9 '@types/hoist-non-react-statics': 3.3.5 @@ -30973,17 +30968,17 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 react-dom: 18.3.1(react@18.3.1) - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) redux: 4.2.1 - react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1): + react-redux@9.1.0(@types/react@18.3.3)(react-native@0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.2.0))(react@18.3.1)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.3 react: 18.3.1 use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: '@types/react': 18.3.3 - react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.24.4)(@babel/preset-env@7.24.6(@babel/core@7.24.4))(@react-native/assets-registry@0.73.1)(@types/react@18.3.3)(encoding@0.1.13)(react@18.3.1) redux: 5.0.1 react-refresh@0.14.2: {}